小编Tar*_*eja的帖子

如何在 Scala 中解析 JSON 数据?

我是 Scala 的新手。我想在 Scala 中解析 JSON 数据。

我想循环这些数据,并在每次迭代中为id,v,qt从值中提取数据

我正在使用以下代码将其解析为 JSON

import scala.util.parsing.json._

val data =
  """
{
  "timestamp":
  1518501114949
  , "values":
  [
  {
    "id":
    "abc"
    , "v":
    0
    , "q":
    true
    , "t":
    1518501114487
  }
  ,
  {
    "id":
    "xyz"
    , "v":
    15
    , "q":
    true
    , "t":
    1518501114494
  }
  ]
}
"""

val parsed = JSON.parseFull(data)
Run Code Online (Sandbox Code Playgroud)

我得到如下输出

 Some(Map(timestamp -> 1.518501114949E12, values -> List(Map(id -> abc, v -> 0.0, q -> true, t -> 1.518501114487E12), Map(id -> …
Run Code Online (Sandbox Code Playgroud)

scala spark-streaming

5
推荐指数
1
解决办法
6020
查看次数

Spark 多个动态聚合函数,countDistinct 不起作用

使用多个动态聚合操作在 Spark 数据帧上聚合。

我想使用具有多个动态聚合操作(由用户在 JSON 中传递)的 Scala 对 Spark 数据帧进行聚合。我正在将 JSON 转换为Map.

下面是一些示例数据:

colA    colB    colC    colD
1       2       3       4
5       6       7       8
9       10      11      12
Run Code Online (Sandbox Code Playgroud)

我正在使用的 Spark 聚合代码:

var cols = ["colA","colB"]
var aggFuncMap = Map("colC"-> "sum", "colD"-> "countDistinct")
var aggregatedDF = currentDF.groupBy(cols.head, cols.tail: _*).agg(aggFuncMap)
Run Code Online (Sandbox Code Playgroud)

我要通过aggFuncMap作为Map唯一的,以使得用户可以通过JSON配置传递任意数量聚合的。

上面的代码工作正常了一些聚集,其中包括summinmaxavgcount

但是,不幸的是,此代码不适用于countDistinct(可能是因为它是驼峰式的?)。

运行上述代码时,我收到此错误:

线程“main”org.apache.spark.sql.AnalysisException 中的异常:未定义的函数:'countdistinct'。此函数既不是注册的临时函数,也不是在数据库“default”中注册的永久函数

任何帮助将不胜感激!

scala count distinct apache-spark apache-spark-sql

3
推荐指数
1
解决办法
1842
查看次数

如何在 AWS 胶中检查 Spark 和 Hadoop 的版本?

我将 AWS 与(基本支持计划)一起使用。我想知道 AWS 粘合作业中使用了哪个版本的 Spark 和 Hadoop (HDFS)。这样我就可以在本地机器上设置相同的环境进行开发。

或者,如果我了解 Spark 的版本,则对应 AWS 粘合作业使用的 Hadoop 版本,反之亦然。

因为我正在使用基本支持计划。所以,我不能向支持中心提出案例。知道在哪里可以检查 AWS 胶水作业... Spark 和 Hadoop 版本吗?

任何形式的帮助和建议表示赞赏。谢谢!

hadoop amazon-web-services apache-spark aws-glue aws-glue-data-catalog

2
推荐指数
1
解决办法
2616
查看次数