我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中应用上面的数组操作.
谢谢
我想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之外还有其他解决方案吗?
所以,我一直在摸不着头脑,获取点击按钮的ID,但无法正确使用.它总是让我回报undefined.
这是小提琴:http://jsfiddle.net/thinkinbee/mx0rb5cy/
有什么东西我没有包含在我的小提琴中吗?.我的JS代码有什么问题吗?
我参考了之前的问题,但似乎没有任何效果.我试图实现两者$(this).attr("id"),this.id但没有积极的结果.
此外,在更长的时间里,我的所有按钮都会动态出现.我需要处理的其他东西呢?