【发布时间】:2017-07-19 22:16:42
【问题描述】:
我正在尝试获取表中列的唯一值并将其与其他列一起打印,例如 sum、tablename,如下面的查询所示。 下面显示的子查询正在获取有效的多行,但为了将其放入列中,我需要将其展平为列表或文本,例如 [1,2,1]。如何将这些数据展平以适合相同的查询,如下所示。我的首选方法是使用 Spark SQL。请帮忙。
**Subquery**
(select distinct $field from tablename)
**Actual Code**
RDDdf.createOrReplaceTempView(“tablename”)
val x= RDDdf.schema.fieldNames
val dfs = x.map(field => spark.sql(s"select 'RDDdf' as TableName,
'$field'as column, sum($field) as Sum, (select distinct $field from
tablename) from tablename"))
**Expected output**
TableName | column | Sum | UniqueVal
----------+---------+-----+----------
RDDdf | a | 4 | 1,2,1
【问题讨论】:
标签: scala apache-spark apache-spark-sql spark-streaming spark-dataframe