Spark Pivot Dataframe завершается ошибкой, если значения одинаковые, но в разных случаях - PullRequest
2 голосов
/ 21 марта 2020

У меня есть искровой фрейм данных, который я хочу развернуть и который имеет два одинаковых, но в разных случаях значения - 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.

Как мне Поворот на столбцы, которые имеют одинаковые значения в разных случаях, как это?

1 Ответ

2 голосов
/ 21 марта 2020

Установить это свойство:

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

Затем можно выбрать ambiguous столбцов из кадра данных:

df.groupby('A').pivot('B').max('C').fillna(0).show()
#+---+----+----+
#|  A|Test|test|
#+---+----+----+
#|  R|   2|   1|
#+---+----+----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...