【发布时间】:2019-02-09 07:17:11
【问题描述】:
我有一个小火花簇,有一个主人和两个工人。我有一个 Kafka 流应用程序,它从 Kafka 流式传输数据并以 parquet 格式和附加模式写入目录。
到目前为止,我可以使用以下关键行从 Kafka 流中读取并将其写入镶木地板文件。
val streamingQuery = mydf.writeStream.format("parquet").option("path", "/root/Desktop/sampleDir/myParquet").outputMode(OutputMode.Append).option("checkpointLocation", "/root/Desktop/sampleDir/myCheckPoint").start()
我已经登记了两名工人。创建了 3-4 个 snappy parquet 文件,文件名的前缀为 part-00006-XXX.snappy.parquet。
但是当我尝试使用以下命令读取这个 parquet 文件时:
val dfP = sqlContext.read.parquet("/root/Desktop/sampleDir/myParquet")
它显示一些拼花分割文件的文件未找到异常。奇怪的是,这些文件已经存在于其中一个工作节点中。
当进一步检查日志时,可以观察到 spark 正试图从一个工作节点中获取所有 parquet 文件,并且由于并非所有 parquet 文件都存在于一个工作节点中,因此除了那些文件之外,它正在命中在提到的镶木地板路径中找不到。
我是否错过了流式查询或读取数据时的某些关键步骤?
注意:我没有 HADOOP 基础架构。我只想使用文件系统。
【问题讨论】:
标签: apache-spark apache-kafka spark-streaming parquet