我有一个想要旋转的 Spark 数据框,它有两个相同但情况不同的值 - 下面示例中的 test
和 Test
。考虑以下示例:
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')
然后能够从数据框中选择不明确
列:
df.groupby('A').pivot('B').max('C').fillna(0).show()
#+---+----+----+
#| A|Test|test|
#+---+----+----+
#| R| 2| 1|
#+---+----+----+
关于python - 当值相同但情况不同时,Spark 数据帧透视失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60781966/