[英]Spark SQL create an array with array values in a column
我有一列整數數組類型:
case class Testing(name: String, age: Int, salary: Double, array: Array[Int])
val x = sc.parallelize(Array(
Testing(null, 21, 905.33, Array(1,2,3)),
Testing("Noelia", 26, 1130.60, Array(3,2,1)),
Testing("Pilar", 52, 1890.85, Array(3,3,3)),
Testing("Roberto", 31, 1450.14, Array(1,0,0))
))
// Convert RDD to a DataFrame
val df = sqlContext.createDataFrame(x)
// For SQL usage we need to register the table
df.registerTempTable("df")
我想創建一個數組,其元素為``數組''列的值。 如何在Spark SQL中執行此操作?
sqlContext.sql("SELECT [array] from df").show
[ [1,2,3], [3,2,1], [3,3,3], [1,0,0]]
假設您暗示有一個名為df
的DataFrame
,並且Array()
值位於名為array
的列中,則此方法就可以解決問題。
df.select($"array").rdd.map{
row => row.getList[Int](0).toArray
}.collect()
如果要通過sqlContext.sql
:
sqlContext.sql("SELECT array FROM df").rdd.map{
row => row.getList[Int](0).toArray
}.collect()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.