【发布时间】:2018-04-27 16:05:18
【问题描述】:
我有 100+ 百万条记录存储在具有以下 JSON 结构的文件中(实际数据有更多的列、行并且也是嵌套的)
{"id":"2-2-3","key":"value"}{"id":"2-2-3","key":"value"}{"id":"2-2-3","key":"value"}{"id":"2-2-3","key":"value"}{"id":"2-2-3","key":"value"}
sqlContext.read.json 函数无法解析这个,因为记录不是在多行上而是在一个大行上。下面的解决方案解决了这个问题,但却是一个很大的性能杀手。在性能方面,在 Apache Spark 中处理此问题的最佳方法是什么?
val rdd = sc.wholeTextFiles("s3://some-bucket/**/*")
val validJSON = rdd.flatMap(_._2.replace("}{", "}\n{").split("\n"))
val df = sqlContext.read.json(validJSON)
df.count()
df.select("id").show()
【问题讨论】:
-
输入文件的平均大小是多少?
-
@user9613318 10mb,总共将近一百万个文件。
标签: scala apache-spark bigdata