我有一组需要通过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()
我错过了什么吗?
任何建议都会有所帮助。
由于