Pyspark через Zeppilin: невозможно экспортировать в формат CSV? - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь экспортировать фрейм данных в файл .csv в корзину S3.

К сожалению, он сохраняет в паркетных файлах.

Может кто-нибудь, пожалуйста, дайте мне знать, как получить экспортФрейм данных pyspark в файл .csv.

Я попробовал приведенный ниже код.')

выдает эту ошибку: CSV-источник данных не поддерживает структуру, значения: массив> тип данных.

Благодарю кого-нибудь за помощь.

Примечание: моя установка искрыоснован на Zepplin.

Спасибо, Naseer

1 Ответ

0 голосов
/ 11 февраля 2019

Вероятность - это столбец массива (содержит несколько значений), который необходимо преобразовать в строку, прежде чем вы сможете сохранить его в CSV.Один из способов сделать это - использовать udf (пользовательская функция):

from pyspark.sql.functions import udf
from pyspark.sql.functions import column as col
from pyspark.sql.types import StringType

def string_from_array(input_list):
    return ('[' + ','.join([str(item) for item in input_list]) + ']')

ats_udf = udf(string_from_array, StringType())

predictions = predictions.withColumn('probability_string', array_to_string_udf(col("probability")))

Затем вы можете сохранить свой набор данных:

predictions.select("probability_string").write.csv('s3a://bucketname/output/x1.csv')
...