HDFS-Spark。分区JSONArray文件

时间:2018-10-15 18:30:46

标签: json apache-spark hdfs

为了处理来自API的数据,我将所有JSONArray格式的数据集放在HDFS中为:

[{"a":"b"},{"a":"d"} .... ]

我知道这种不好 JSON格式,并且我需要 JSON记录格式。 因此,他确实具有良好的HDFS分区,并且很难用Spark解析和读取它。

Spark能够解析架构和行号。但是,我只有一个分区(逻辑)。 为了处理此数据集并将其发送到Kafka,我想使用Spark进行简单的分区

实际上,我们说我的数据集为40GB,而我的执行者每位执行者不能超过10GB。

如您所料,它不起作用,因为他无法读取内存中的所有内容。

作为我的数据源的Web API不会更改格式。我必须做。

但是在哪里?

如果我不能给执行者更多的资源,我将无法读取和重新分配它。

我可以看到的唯一解决方案是,在以“ hdfs”格式将其以良好的json记录格式“存储”之前,可以在Bash脚本中对该数据进行预处理,这使我可以在Spark中读取它。我说的对吗?

是否无法通过InputStream读取此文件,解析流并直接创建json记录文件? NameNode是否将使用stream.write在HDFS中对该数据进行分区?

感谢您的帮助。

0 个答案:

没有答案