我的程序连续读取流hadoop
文件夹(比如/hadoopPath/
)。它从上面的文件夹中选取所有文件。我可以只显示该文件夹的特定文件类型吗(例如:/hadoopPath/*.log
)
我还有一个与 Spark 和流媒体相关的问题:Spark Streaming 是否适用于“cp”和“mv” https://stackoverflow.com/questions/36350336/is-spark-streaming-works-with-both-cp-and-mv
我已经为同样的问题苦苦挣扎了几个小时,虽然看起来很简单,但我在网上找不到任何关于它的信息。最后,我找到了一个适合我的案例的解决方案。我将其放在这里是为了为遇到同样问题的其他人节省一些时间。
假设您只想读取具有“path-to-hadoop-folder/*.csv”模式的文件。在默认情况下,当您指定文件夹时,spark 会读取该文件夹中的所有文件(例如 .csv)。COPYING)就我而言,这导致了错误。您所需要做的就是在定义 readStrem 时在 .csv 方法中指定此模式。 python 中的一个例子如下:
activity = spark \
.readStream \
.option("sep", ",") \
.schema(userSchema) \
.csv("path-to-hadoop-folder/*.csv")
这样,spark 仅考虑具有 *.csv 模式的文件,并忽略该文件夹中的所有其他文件。我在spark 2.0.0和hadoop 2.6上测试过。 (P.S 我只测试了 csv 文件,但我想处理文本文件应该有类似的解决方案)
你可以在中找到相同的解决方案Spark DataStreamReader 公会 https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.streaming.DataStreamReader
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)