Apache spark 如何收集流数据集(到Scala值)?

Apache spark 如何收集流数据集(到Scala值)?,apache-spark,spark-structured-streaming,Apache Spark,Spark Structured Streaming,如何将数据帧值存储到scala变量 我需要存储下面数据帧中的值,假设列时间戳为变量生成相同的值,然后我需要在某个地方使用这个变量 我试过跟随 val spark =SparkSession.builder().appName("micro"). enableHiveSupport().config("hive.exec.dynamic.partition", "true"). config("hive.exec.dynamic.partition.mode", "nonstri

如何将数据帧值存储到scala变量

我需要存储下面数据帧中的值,假设列时间戳为变量生成相同的值,然后我需要在某个地方使用这个变量

我试过跟随

   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执行

是否有任何方法可以将一些数据帧值存储到变量并在以后使用

是否有任何方法可以将一些数据帧值存储到变量并在以后使用

这在Spark结构化流媒体中是不可能的,因为流媒体查询永远不会结束,因此不可能表示collect

稍后我需要在某个地方使用这个变量


这之后必须是另一个流式查询,您可以将其连接在一起并生成结果。

是否可以在同一程序上启动两个流式查询?让我试试……非常感谢。。。您的贡献非常有助于激发结构化流媒体