Записать кадр данных в файл массива JSON с помощью Spark - PullRequest
0 голосов
/ 06 ноября 2019

У нас есть следующий код:

 val sparkSession = SparkSession.builder
  .master("local")
  .appName("example")
  .getOrCreate()

val data = Seq(
  Row(1, "a","b","c","d"),
  Row(5, "z","b","c","d")

)

val schema = StructType(
  List(
    StructField("id", IntegerType, true),
    StructField("f2", StringType, true),
    StructField("f3", StringType, true),
    StructField("f4", StringType, true),
    StructField("f5", StringType, true)
  )
)

val df1 = sparkSession.createDataFrame(
  sparkSession.sparkContext.parallelize(data),
  schema
)

Цель - записать этот фрейм данных в массив JSON:

[{"id":1,"f2":"a","f3":"b","f4":"c","f5":"d"},
 {"id":5,"f2":"z","f3":"b","f4":"c","f5":"d"}]

Итак, нам нужны эти две квадратные скобки, но размер фрейма данных превышает 50 ГБпоэтому решение df1.toJSON.collect.mkString ("[", ",", "]") недопустимо. Есть ли способ решить эту проблему с помощью Spark с хорошей производительностью?

Заранее спасибо

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