簡體   English   中英

Spark SQL創建一個在列中具有數組值的數組

[英]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]]

假設您暗示有一個名為dfDataFrame ,並且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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM