无法使用Spark结构化流式传输读取流式文件

时间:2017-09-14 06:40:27

标签: csv apache-spark hive apache-spark-sql spark-structured-streaming

我有一组需要通过Spark结构化流式传输读取的CSV文件。创建DataFrame后,我需要加载到Hive表中。

如果在通过spark-submit运行代码之前文件已经存在,则数据会成功加载到Hive中。但是当我在运行时添加新的CSV文件时,它根本不会将其插入到Hive中。

代码是:

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
import org.apache.spark.sql.streaming.OutputMode

val spark = SparkSession.builder().appName("Spark SQL Example").config("hive.metastore.uris","thrift://hostname:port").enableHiveSupport().config("hive.exec.dynamic.partition", "true").config("hive.exec.dynamic.partition.mode", "nonstrict").getOrCreate()
spark.conf.set("spark.sql.streaming.schemaInference", true)
import spark.implicits._  

val df = spark.readStream.option("header", true).csv("file:///folder path/")
val query = df.writeStream.queryName("tab").format("memory").outputMode(OutputMode.Append()).start()
spark.sql("insert into hivetab select * from tab").show()
query.awaitTermination()

我错过了什么吗?

任何建议都会有所帮助。

由于

0 个答案:

没有答案