小编thi*_*bee的帖子

选择数组spark sql中的一系列元素

spark-shell用来做下面的操作.

最近在spark-sql中加载了一个带有数组列的表.

这是相同的DDL:

create table test_emp_arr{
    dept_id string,
    dept_nm string,
    emp_details Array<string>
}
Run Code Online (Sandbox Code Playgroud)

数据看起来像这样

+-------+-------+-------------------------------+
|dept_id|dept_nm|                     emp_details|
+-------+-------+-------------------------------+
|     10|Finance|[Jon, Snow, Castle, Black, Ned]|
|     20|     IT|            [Ned, is, no, more]|
+-------+-------+-------------------------------+
Run Code Online (Sandbox Code Playgroud)

我可以查询emp_details列,如下所示:

sqlContext.sql("select emp_details[0] from emp_details").show
Run Code Online (Sandbox Code Playgroud)

问题

我想查询集合中的一系列元素:

预期的查询工作

sqlContext.sql("select emp_details[0-2] from emp_details").show
Run Code Online (Sandbox Code Playgroud)

要么

sqlContext.sql("select emp_details[0:2] from emp_details").show
Run Code Online (Sandbox Code Playgroud)

预期产出

+-------------------+
|        emp_details|
+-------------------+
|[Jon, Snow, Castle]|
|      [Ned, is, no]|
+-------------------+
Run Code Online (Sandbox Code Playgroud)

在纯Scala中,如果我有一个数组的东西:

val emp_details = Array("Jon","Snow","Castle","Black")
Run Code Online (Sandbox Code Playgroud)

我可以使用从0到2范围的元素

emp_details.slice(0,3)
Run Code Online (Sandbox Code Playgroud)

回报我

Array(Jon, Snow,Castle)
Run Code Online (Sandbox Code Playgroud)

我无法在spark-sql中应用上面的数组操作.

谢谢

arrays hive scala apache-spark apache-spark-sql

10
推荐指数
2
解决办法
2万
查看次数

如何对数组列的元素进行切片和求和?

我想sum使用SparkSQL在数组列上(或执行其他聚合函数).

我有一张桌子

+-------+-------+---------------------------------+
|dept_id|dept_nm|                      emp_details|
+-------+-------+---------------------------------+
|     10|Finance|        [100, 200, 300, 400, 500]|
|     20|     IT|                [10, 20, 50, 100]|
+-------+-------+---------------------------------+
Run Code Online (Sandbox Code Playgroud)

我想总结一下这个emp_details专栏的价值.

预期查询:

sqlContext.sql("select sum(emp_details) from mytable").show
Run Code Online (Sandbox Code Playgroud)

预期结果

1500
180
Run Code Online (Sandbox Code Playgroud)

此外,我应该能够总结范围元素:

sqlContext.sql("select sum(slice(emp_details,0,3)) from mytable").show
Run Code Online (Sandbox Code Playgroud)

结果

600
80
Run Code Online (Sandbox Code Playgroud)

当对数组类型进行求和时,它表示sum预期参数为数字类型而不是数组类型.

我认为我们需要为此创建UDF.但怎么样?

我是否会面临使用UDF的任何性能命中?除了UDF之外还有其他解决方案吗?

scala apache-spark apache-spark-sql

4
推荐指数
3
解决办法
6013
查看次数

获取单击按钮的ID

所以,我一直在摸不着头脑,获取点击按钮的ID,但无法正确使用.它总是让我回报undefined.

这是小提琴:http://jsfiddle.net/thinkinbee/mx0rb5cy/

有什么东西我没有包含在我的小提琴中吗?.我的JS代码有什么问题吗?

我参考了之前的问题,但似乎没有任何效果.我试图实现两者$(this).attr("id"),this.id但没有积极的结果.

此外,在更长的时间里,我的所有按钮都会动态出现.我需要处理的其他东西呢?

html javascript jquery

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