Нужно исправить массив to_csv для python - PullRequest
0 голосов
/ 14 ноября 2018

Я пишу код, чтобы иметь возможность сделать CSV-файл из моего dataFrame.Проблема в том, что некоторые столбцы в моем dataFrame содержат значение массива, поэтому он не создает файл csv, а просто выдает ошибку массива.

Как получить первое значение массива в виде строки?Я попытался с помощью explode (), но я могу сделать это только один раз.Есть ли другой вид решения этой проблемы?

У меня есть что-то вроде этого:

newDf = df.select(col("customer").alias("c"), col("array1").alias("a1"), 
col("array2").alias("a2"), explode(col("array3".alias("a32))

Затем я делаю SQL-запрос, чтобы создать то, что я хочу:

newDf.createOrReplaceTempView("csvFileTable")

sqlDF = spark.sql("SELECT c, a1, a2, a3 FROM csvFileTable")

display(sqlDF)

1 Ответ

0 голосов
/ 14 ноября 2018

Допустим, у вас есть DataFrame с именем df со столбцом arrcol, который содержит массивы.Вы можете заменить каждый массив в этом столбце первым элементом массива следующим образом:

df['arrcol'] = df['arrcol'].str[0]

Вы можете быть смущены этим использованием str.Обычно он используется для нарезки строковых столбцов, но одинаково хорошо работает и для других срезаемых типов, таких как массив и список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...