对于相同但情况不同的值,Spark数据帧透视失败



我有一个要以其为中心的spark数据帧,它有两个相同但在不同情况下的值——下面示例中的testTest。考虑以下示例:

df = spark.createDataFrame([["R","test",1],["R","Test",2]], ["A", "B", "C"])
df.show()
df2 = df.groupby('A').pivot('B').max('C').fillna(0).cache()
df2.show()

我期望以下输出

+---+----+---+
|  A|   B|  C|
+---+----+---+
|  R|test|  1|
|  R|Test|  2|
+---+----+---+
+---+----+----+
|  A|Test|test|
+---+----+----+
|  R|   2|   1|
+---+----+----+

但是,却抛出了以下异常:

org.apache.spark.sql.AnalysisException: Reference 'Test' is ambiguous, could be: Test, Test.

在这种不同的情况下,如何在具有相同值的列上进行透视?

设置此属性:

spark.sql('set spark.sql.caseSensitive=true')

然后能够从数据帧中选择ambiguous列:

df.groupby('A').pivot('B').max('C').fillna(0).show()
#+---+----+----+
#|  A|Test|test|
#+---+----+----+
#|  R|   2|   1|
#+---+----+----+

最新更新