Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何使用Spark结构化流媒体打印Json编码的消息_Apache Spark_Apache Spark Sql_Spark Structured Streaming - Fatal编程技术网

Apache spark 如何使用Spark结构化流媒体打印Json编码的消息

Apache spark 如何使用Spark结构化流媒体打印Json编码的消息,apache-spark,apache-spark-sql,spark-structured-streaming,Apache Spark,Apache Spark Sql,Spark Structured Streaming,我有一个DataSet[Row],其中每一行都是JSON字符串。我只想打印JSON流或计算每个批的JSON流 这是到目前为止我的代码 val ds=sparkSession.readStream 卡夫卡先生 .optionkafka.bootstrap.servers,bootstrapServers .选项订阅,主题名称 .option检查点位置,hdfscheckpoint目录 负载 val ds1=ds.selectfrom_jsonclavue.caststring,模式为“有效负载”

我有一个DataSet[Row],其中每一行都是JSON字符串。我只想打印JSON流或计算每个批的JSON流

这是到目前为止我的代码

val ds=sparkSession.readStream 卡夫卡先生 .optionkafka.bootstrap.servers,bootstrapServers .选项订阅,主题名称 .option检查点位置,hdfscheckpoint目录 负载 val ds1=ds.selectfrom_jsonclavue.caststring,模式为“有效负载” val ds2=ds1。选择$payload.info val query=ds2.writeStream.outputModeappend.queryNametable.formatmemory.start 查询.等待终止 从表中选择*;-没有看到任何东西,也没有错误。然而,当我独立于公园单独运行我的卡夫卡消费者时,我可以看到数据 我的问题是,我需要做什么?只需使用结构化流媒体打印我从卡夫卡接收的数据?Kafka中的消息是JSON编码的字符串,因此我将JSON编码的字符串转换为某种结构,并最终转换为数据集。我正在使用Spark 2.1.0

val ds1 = ds.select(from_json(col("value").cast("string"), schema) as payload).select($"payload.*")
这将在控制台上打印您的数据

ds1.writeStream.format("console").option("truncate", "false").start().awaitTermination()

在这种情况下,请始终使用“等待终止”或“线程”。睡眠时间以秒为单位。

您是否也在Spark用户与TD的邮件列表中讨论过这个问题?试图找出这两个用例有多不同。嗨!是的,但我们还没有得出转换的结论。我只是尝试使用结构化流媒体来打印数据,但我很难做到这一点:我也尝试过val query=ds.writeStream.outputModeappend.formatconsole.start,但也没有成功