【发布时间】:2018-10-05 02:31:22
【问题描述】:
我有一个包含 JSON 数组的压缩 JSON 文件,如下所示:
[{"Product":{"id"1,"image":"/img.jpg"},"Color":"black"},{"Product":{"id"2,"image":"/img1.jpg"},"Color":"green"}.....]
我知道这不是读入 scala 的理想数据格式,但是除了以这种方式处理提要之外别无选择。
我试过了:
spark.read.json("file-path")
这似乎需要很长时间(如果您的数据以 MB 为单位,处理速度非常快,但是对于 GB 的数据需要很长时间),可能是因为 spark 无法拆分文件并将其分发给其他执行程序。
想看看是否有任何方法可以预处理这些数据并将其作为数据帧加载到 Spark 上下文中。
我想要的功能似乎类似于:Create pandas dataframe from json objects。但我想看看是否有任何 scala 替代方案可以做类似的并将数据转换为 spark RDD / dataframe 。
【问题讨论】:
-
所以如果您已经知道 gzip 是问题所在,除了不使用 gzip 或先解压缩文件之外,您还期望什么样的答案?真的没有什么魔法可以将 gzip 变成 Hadoop / Spark 友好的格式。
-
同意@user6910411 在 Spark 外部进行拆分。将原始 JSON 存储在 HDFS 中并读入 Spark 也不理想。考虑采用快速压缩的镶木地板。
标签: json scala apache-spark hadoop spark-dataframe