首页 > 解决方案 > 如何为 StructuredNetworkWordCountWindowed 示例输入数据以使时间戳不同(与 1970 年相比)?

问题描述

我运行名为StructuredNetworkWordCountWindowed的结构化流演示,我很困惑为什么时间戳是“1970-01-19 13:28:00”。如何输入示例数据?</p>

输入:

[i@15:44:48]~$ nc -lk 9999
(123 123,2017-10-13 10:28.24.0)
123
345

输出:</p>

+------------------------------------------+--------------+-----+
|window                                    |word          |count|
+------------------------------------------+--------------+-----+
|[1970-01-19 13:27:00, 1970-01-19 13:28:00]|123,2017-10-13|1    |
|[1970-01-19 13:27:00, 1970-01-19 13:28:00]|123           |1    |
|[1970-01-19 13:27:00, 1970-01-19 13:28:00]|(123          |1    |
|[1970-01-19 13:27:00, 1970-01-19 13:28:00]|10:28.24.0)   |1    |
+------------------------------------------+--------------+-----+

标签: apache-sparkspark-structured-streaming

解决方案


代码

val lines = spark.readStream
  .format("socket")
  .option("host", host)
  .option("port", port)
  .option("includeTimestamp", true)
  .load()

也就是说,不是您输入时间戳,而是socket数据源为您执行此操作。

无论您键入什么都被视为使用(空格)单词分隔符分成单词的文本行。" "

也就是说,套接字数据源本身肯定有一些不正确的地方,而不是示例或您键入的任何内容。

操作系统也可能配置错误的日期(!)


推荐阅读