gpt4 book ai didi

json - 从文件读取Spark数组到Spark数据帧

转载 作者:行者123 更新时间:2023-12-02 19:18:29 24 4
gpt4 key购买 nike

我有一个压缩的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。

最佳答案

您可以使用spark.read().text("gzip-file-path")读取“gzip”文件。由于Spark API构建在HDFS API之上,因此Spark可以读取gzip文件并将其解压缩以读取文件。

https://github.com/mesos/spark/blob/baa30fcd99aec83b1b704d7918be6bb78b45fbb5/core/src/main/scala/spark/SparkContext.scala#L239

但是,gzip是不可拆分的,因此spark创建具有单个分区的RDD。因此,使用spark读取gzip文件没有意义。

您可以解压缩gzip文件并读取解压缩的文件,以充分利用分布式处理体系结构。

关于json - 从文件读取Spark数组到Spark数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50008289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com