【问题标题】:"Transforming" Sensor Data with Apache Spark Java使用 Apache Spark Java“转换”传感器数据
【发布时间】:2019-10-05 23:21:15
【问题描述】:

我有一个生成传感器数据的 OPC 源,我需要“转换”数据。

传感器数据存储在 csv 文件中,如下所示:

Sensor    Value  Timestamp
Sensor 1  1234   XYZ
Sensor 2  1342   XYZ+1
Sensor 3  ...
...
Sensor 1  1434   XYZ+n
Sensor 2  1523   XYZ+n+1
Sensor 3  ...
...

数据的上下文在工厂中,每次生产完成后,新产品进入工厂生产线,传感器重新启动

目标结构应该是这样的

Product   Sensor 1  Sensor 2  Sensor  ...
X         1234      1342      ...
X+1       1434      1523      ...
...   

我是 Java 中 Apache Spark 的初学者,不知道如何转换这些数据。 任何帮助将不胜感激。

感谢您的帮助!

更新

如前所述,在源数据中,没有指向特定产品的链接。在目标数据中,没有时间戳。

我的想法是聚合数据。每当传感器 1 有一个值时,它就是一个新产品。这意味着通过 Timestamp 和 Sensorname,您可以获得产品。

但我真的不想把它写进代码里。如果您对此有任何想法,我会非常高兴!

【问题讨论】:

  • 使用 Apache Spark 和 Java 来搞清楚,抱歉我忘了。
  • 我也读过这篇文章,但我不知道如何将它与上述给定的数据相匹配......你能帮我吗?
  • 您的第一个 csv 不包含“产品”,而例外 csv 不包含时间戳。
  • @Hades,我更新了我的问题,因为这似乎是节目破坏者。
  • 我有一个答案给你看看是否适合你。

标签: java apache-spark dataset


【解决方案1】:

自己找到了答案:

我添加了一个细分为特定产品的新列,然后:

Dataset <Row> df = oldf
                        .groupBy("Product")
                        .pivot("Sensor")
                        .agg(functions.first(oldf.col("Value")))    

对此非常满意!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2021-05-20
    相关资源
    最近更新 更多