Pyspark добавляет дополнительные двойные кавычки в массив для экономии времени

#json #apache-spark #pyspark

Вопрос:

У меня есть небольшая настройка кластера Spark 3.x. Я прочитал некоторые данные и после преобразований должен сохранить их в формате JSON. Но проблема, с которой я сталкиваюсь, заключается в том, что в столбцах типа массива Spark добавляет дополнительные двойные кавычки при записи в файл json. Пример данных-данные фрейма введите описание изображения здесь

Я сохраняю этот кадр данных в формате JSON со следующей командой

 df.write.json("Documents/abc")
 

Сохраненный вывод выглядит следующим образом
введите описание изображения здесь

Наконец, информация о схеме выглядит следующим образом введите описание изображения здесь

Ответ №1:

Элементы строкового массива содержат двойные кавычки внутри данных, например, первый элемент "Saddar Cantt, Lahore Punjab Pakistan" вместо Saddar Cantt, Lahore Punjab Pakistan . Вы можете удалить дополнительные двойные кавычки из строк перед написанием json с помощью преобразования и замены:

 df.withColumn("ADDRESS", F.expr("""transform(ADDRESS, a -> replace(a, '"'))""")) 
    .write.json("Documents/abc")
 

Комментарии:

1. Спасибо, что если мне придется удалить символ новой строки вместо двойной кавычки.

2. @HafizMuhammadShafiq ты можешь попробовать transform(ADDRESS, a -> replace(a, 'n')) ?