gpt4 book ai didi

hadoop - 在Spark中高效读取json

转载 作者:行者123 更新时间:2023-12-02 21:18:01 26 4
gpt4 key购买 nike

我正在从一个文件夹中读取大约20,000个JSON文件,每个文件的大小约为10 MB。下面的代码大约需要30分钟才能读取这些文件。

有25个D4类型的工作程序节点(Azure HDInsight)。

var rawJson =  sqlContext.read.json("/data/*.json")

以下是我正在使用的作业配置。

“--driverMemory”,
“7克”,
“--executorCores”,
“3”,
“--executorMemory”,
“4克”,
“--numExecutors”,
“32”

JSON模式如下所示。不同的文件在“属性”部分中包含不同数量的字段。
{  
"name": "AssetName",
"time": "2016-06-20T11:57:19.4941368-04:00",
"data": {
"type": "EventData",
"dataDetails": {
"name": "EventName",
"measurements": {
"StartTime": 61058529,
"EndTime": 61058737,
"Duration": 208,
"ID": 26509812,
"Version": 24720
},
"properties": {
"identifier": "Foo",
"EventId": "6b613d8D-2f65-447e-bf6d-9e9133c0b803",
"TagGuid": "{9E4fe7c1-cf8a-4527-fd27-c0c58c0b1fed}",
"property1": "val1",
"property2": "val2",
"property3": "val3",
"property4": "False"
}
}
}
}

是否有更有效/更有效的方式来读取这些json文件而无需添加更多资源?

谢谢!

最佳答案

sqlContext.read.json方法不将分区数作为输入。尝试创建一个RDD [String]并控制并行度!!!

val jsonRDD = sc.textFile("/data/*.json", 100)
val rawJson = sqlContext.read.json(jsonRDD)

关于hadoop - 在Spark中高效读取json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38231981/

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