spark无法正确读取文件

iklwldmw  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(445)

我运行flume将twitter数据摄取到hdfs(json格式)中,并运行spark读取该文件。
但不知何故,它并没有返回正确的结果:文件的内容似乎没有更新。
这是我的Flume配置:

TwitterAgent01.sources = Twitter
TwitterAgent01.channels = MemoryChannel01
TwitterAgent01.sinks = HDFS

TwitterAgent01.sources.Twitter.type = com.cloudera.flume.source.TwitterSource
TwitterAgent01.sources.Twitter.channels = MemoryChannel01
TwitterAgent01.sources.Twitter.consumerKey = xxx
TwitterAgent01.sources.Twitter.consumerSecret = xxx
TwitterAgent01.sources.Twitter.accessToken = xxx
TwitterAgent01.sources.Twitter.accessTokenSecret = xxx
TwitterAgent01.sources.Twitter.keywords = some_keywords

TwitterAgent01.sinks.HDFS.channel = MemoryChannel01
TwitterAgent01.sinks.HDFS.type = hdfs
TwitterAgent01.sinks.HDFS.hdfs.path = hdfs://hadoop01:8020/warehouse/raw/twitter/provider/m=%Y%m/
TwitterAgent01.sinks.HDFS.hdfs.fileType = DataStream
TwitterAgent01.sinks.HDFS.hdfs.writeFormat = Text
TwitterAgent01.sinks.HDFS.hdfs.batchSize = 1000
TwitterAgent01.sinks.HDFS.hdfs.rollSize = 0
TwitterAgent01.sinks.HDFS.hdfs.rollCount = 0
TwitterAgent01.sinks.HDFS.hdfs.rollInterval = 86400

TwitterAgent01.channels.MemoryChannel01.type = memory
TwitterAgent01.channels.MemoryChannel01.capacity = 10000
TwitterAgent01.channels.MemoryChannel01.transactionCapacity = 10000

之后,我用 hdfs dfs -cat 它返回1000多行,这意味着数据被成功插入。
但事实并非如此

spark.read.json("/warehouse/raw/twitter/provider").filter("m=201802").show()

只有6行。
我错过什么了吗?

wgxvkvu9

wgxvkvu91#

我不太清楚为什么您指定路径的后半部分作为表达式的条件 filter .
我相信要正确阅读你的文件,你可以写:

spark.read.json("/warehouse/raw/twitter/provider/m=201802").show()

相关问题