|
|
1
3
将JSON文件合并成新行分隔的、更大的(目标是一个或最多10个文件,而不是30个)文件是这里唯一的选择。 python打开30k文件的速度不会比您已经做的慢,它只是不会被分发。
除此之外,
这里最一致的解决方案是修复正在写入所有这些文件的摄取管道,这样您就可以提前积累记录,然后转储更大的批。或者只是使用kafka,而不是从S3(或任何类似的文件系统)读取数据。 |
|
|
2
0
有两个HTTP请求,一个读取,一个头,一个获取;如果文件都保存在同一个目录中,那么列表成本只是一个列表/5000个对象,所以需要6个列表调用。您将支付约25美元的3万名员工和接线员的电话费。 如果您使用spark获取列表并从每个单独的文件生成一条记录,那么每一个文件的调度任务的开销也是如此。您可以做一个技巧,使列表本身(在.py中做)成为输入RDD(即每个文件一行),map()成为该文件的读取,map的输出成为表示单个文件的记录。 scala example 。这解决了Spark调度开销,因为该输入列表将被拆分成更大的部分,并推送到工作人员手中,因此只留下那些HTTP head/get调用。
为了有效地工作,使用Hadoop2.8+jars,并使用
(完成后,为什么不将代码发布到其他人的某个地方?) |
|
Sweepy Dodo · JSON lite的格式化 1 年前 |
|
|
user24242514 · 将嵌套查询字符串请求转换为字典 1 年前 |
|
|
Shane Harley · 通过这些JSON元素进行映射 1 年前 |
|
|
Shane Harley · 将HTML作为JSON字符串的一部分? 1 年前 |
|
|
Matt Miles · 如何将嵌套的JSON转换为数据帧? 1 年前 |