【发布时间】:2014-10-05 21:30:51
【问题描述】:
我想问一下 Spark 中的输入可能性。我可以从http://spark.apache.org/docs/latest/programming-guide.html 看到,我可以使用sc.textFile() 将文本文件读取到 RDD,但我想在分发到 RDD 之前进行一些预处理,例如我的文件可能是 JSON 格式,例如. {id:123, text:"...", value:6} 我只想使用 JSON 的某些字段进行进一步处理。
我的想法是是否有可能以某种方式使用 Python 生成器作为 SparkContext 的输入?
或者,如果 Spark 中有一些更自然的方式如何处理自定义文件,而不是 Spark 的纯文本文件?
编辑:
似乎接受的答案应该有效,但它让我转向了我更实际的以下问题Spark and Python trying to parse wikipedia using gensim
【问题讨论】:
-
您始终可以将 JSON 加载到 RDD 中,然后在 RDD 上进行处理以仅过滤您需要的数据。这样做的好处是这种“预处理”类型的工作可以在 Spark 集群中并行化。您能否举例说明您首先要进行哪种处理?
-
通过预处理,我主要是指我只想从 JSON 或 XML 中选择例如字段 text1、text2,然后我可以做一些事情,比如用空格分割它并将其保存为文本文件。我没有看到任何自然的方式来解析 JSON RDD。现在我只能考虑将 JSON 或 XML 作为 sc.textFile() 文件进行处理,并且无论何时看到所需的密钥,然后使用以下字符串。你是这个意思吗?
-
是的,我想我对你想要做的事情有感觉。如果我误解了,请评论我的回答。
标签: python hadoop apache-spark