arrays - Scala/Spark SQL 数组[行] 到数组(数组(值))

标签 arrays scala apache-spark

首先,我想说,我是 Scala 的新手,我在基本转换格式方面遇到了问题...我希望我能在不久的将来在函数式编程方面取得更好的成绩,如果这是一个愚蠢的问题,那么抱歉

我使用 Spark SQL 进行查询,并在名为“probesGroupby”的变量中获取结果

  val probesGroupby = sqlContext.sql("SELECT id_counter as id_counter, co_mac as co_mac, ts_timestamp as ts_timestamp, max(qt_rssi) as qt_rssi, count(*) as qt_tracks " +
                                     " FROM probes GROUP BY id_counter, co_mac, ts_timestamp")

好吧,到这里为止。之后,我需要将数据写入 InfluxDB 数据库,并且 API 需要以下格式:

val probeRequest= Series("probeRequest",
  Array("id_counter","co_mac","time","qt_rssi","qt_tracks"),
  Array(
    Array(row[0],row[1],row[2],row[3], row[4]),
    Array(row[0],row[1],row[2],row[3], row[4]),
    Array(row[0],row[1],row[2],row[3], row[4]),
    ...
  )
)
assert(None == client.writeSeries(Array(probeRequest)))

如何使用这种格式创建变量“probeRequest”,以便我有一个数组,其中包含查询返回的每行的值?我尝试了一些东西,但似乎不起作用:(

提前谢谢您,

最佳答案

您必须使用 Series 来包装它,但除此之外它就这么简单:

probesGroupby.map(_.toSeq.toArray).collect

或者如果您更喜欢更明确的方法,您可以使用模式匹配:

rdd.map { case Row(idCounter, coMac, time, qtRssi, tTracks) => 
    Array(idCounter, coMac, time, qtRssi, tTracks)
} collect

关于arrays - Scala/Spark SQL 数组[行] 到数组(数组(值)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31359742/

相关文章:

scala - 理解 IO monad

arrays - 为什么在 F# 中处理数组比列表更快

javascript - 如何将一个数组值链接到另一个数组值?

scala - 如何从 map /过滤器/等执行异步操作(即返回 future )?

apache-spark - Spark Streaming中如何将压缩数据写入Kafka?

hadoop - 试图让 Spark 流从网站读取数据流,套接字是什么?

apache-spark - Spark 提交管道模型

arrays - 在 Elasticsearch 中聚合值数组

actionscript-3 - 快速确定数据在数组中的位置

scala - 为什么我的takeWhile无法与我的Stream一起使用