我正在spark3.2中运行一个简单的查询
val df1 = sc.parallelize(List((1,2,3,4,5),(1,2,3,4,5))).toDF("id","col2","col3","col4", "col5")
val op_cols_same_case = List("id","col2","col3","col4", "col5", "id")
val df2 = df1.select(op_cols_same_case.head, op_cols_same_case.tail: _*)
df2.select("id").show()
上面的查询返回结果,但是当我混合大小写时,它给出了异常
val df1 = sc.parallelize(List((1,2,3,4,5),(1,2,3,4,5))).toDF("id","col2","col3","col4", "col5")
val op_cols_diff_case = List("id","col2","col3","col4", "col5", "ID")
val df2 = df1.select(op_cols_diff_case.head, op_cols_diff_case.tail: _*)
df2.select("id").show()
在我的测试用例中,Sensitive是default(false)。
我希望两个查询都返回结果。或者两个查询都失败。
为什么一个失败了,另一个却没有?
1条答案
按热度按时间wz3gfoph1#
我们认为这是一个问题或非问题的基础上,似乎合乎逻辑的一个。有一个很长的线程this pull request,其中一些人认为这是正确的,而有些人认为这是错误的。
但是拉取请求的改变确实使行为保持一致。