【问题标题】:Adding data to scala WrappedArray in Java在Java中将数据添加到scala WrappedArray
【发布时间】:2021-09-22 08:26:39
【问题描述】:

我有下面的 scala Row,作为 Java 代码中 JavaRdd.map() 调用的一部分。

["A",4,[WrappedArray(["B"],["C"]),WrappedArray(["D"])]]

架构:

{"type":"struct","fields":[{"name":"id","nullable":false,"type":"string","metadata":{}},{"name":"mid","nullable":false,"type":"long","metadata":{}},{"name":"cr","nullable":false,"type":{"type":"struct","fields":[{"name":"psd","type":{"type":"array","elementType":{"type":"struct","fields":[{"name":"cid","type":"string","nullable":true,"metadata":{}}]},"containsNull":true},"nullable":true,"metadata":{}},{"name":"pqd","type":{"type":"array","elementType":{"type":"struct","fields":[{"name":"cid","type":"string","nullable":true,"metadata":{}}]},"containsNull":true},"nullable":true,"metadata":{}}]},"metadata":{}}]}

我想用上面一行的内容创建一个新行,只需将字符串“X”添加到 WrappedArray 的内部元素。

["A",4,[WrappedArray(["X", "B"],["X", "C"]),WrappedArray(["X", D"])]]

架构:

{"type":"struct","fields":[{"name":"id","nullable":false,"type":"string","metadata":{}},{"name":"mid","nullable":false,"type":"long","metadata":{}},{"name":"cr","nullable":false,"type":{"type":"struct","fields":[{"name":"psd","type":{"type":"array","elementType":{"type":"struct","fields":[{"name":"cid","type":"string","nullable":true,"metadata":{}},{"name":"renamed","type":"string","nullable":true,"metadata":{}}]},"containsNull":true},"nullable":true,"metadata":{}},{"name":"pqd","type":{"type":"array","elementType":{"type":"struct","fields":[{"name":"cid","type":"string","nullable":true,"metadata":{}},{"name":"renamed","type":"string","nullable":true,"metadata":{}}]},"containsNull":true},"nullable":true,"metadata":{}}]},"metadata":{}}]}

如何通过向 WrappedArray 内的现有结构添加额外数据来创建新行。

【问题讨论】:

    标签: java scala apache-spark apache-spark-sql


    【解决方案1】:

    WrappedArray 是 Scala 中的类数组类型。您可以通过添加这样的元素来创建新的 WrappedArray,然后您可以更新对象:

    val arr = new WrappedArray.ofRef(Array("a", "b", "c"))
    val newArr = arr :+ "d"
    

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 2017-06-13
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2018-01-25
      • 1970-01-01
      相关资源
      最近更新 更多