如何将数据帧值存储到scala变量?
我需要将以下数据帧中的值(假设列“ timestamp”列产生相同的值)存储到变量中,然后在某个地方使用此变量
我尝试关注
val spark =SparkSession.builder().appName("micro").
enableHiveSupport().config("hive.exec.dynamic.partition", "true").
config("hive.exec.dynamic.partition.mode", "nonstrict").
config("spark.sql.streaming.checkpointLocation", "hdfs://dff/apps/hive/warehouse/area.db").
getOrCreate()
val xmlSchema = new StructType().add("id", "string").add("time_xml", "string")
val xmlData = spark.readStream.option("sep", ",").schema(xmlSchema).csv("file:///home/shp/sourcexml")
val xmlDf_temp = xmlData.select($"id",unix_timestamp($"time_xml", "dd/mm/yyyy HH:mm:ss").cast(TimestampType).as("timestamp"))
val collect_time = xmlDf_temp.select($"timestamp").as[String].collect()(0)
出现以下错误:
org.apache.spark.sql.AnalysisException:具有流源的查询必须使用writeStream.start()
执行
有什么方法可以将一些数据帧值存储到变量中并在以后使用?
答案 0 :(得分:1)
有什么方法可以将一些数据帧值存储到变量中并在以后使用?
在Spark结构化流中这是不可能的,因为流查询永远不会结束,因此无法表达collect
。
后来我需要在某个地方使用此变量
此“稍后”必须是另一个流查询,您可以join
一起生成结果。