2017-11-14 24 views
1

で構造体を爆発させました。私は関数を爆破しようとしましたが、配列型ではなく配列型で動作します。それは、可能なデータフレームの下にできたデータフレームを変換することです:は、私は次のスキーマとデータフレームを持っているスパーク

 |-- asin: string (nullable = true) 
    |-- customerId: long (nullable = true) 
    |-- eventTime: long (nullable = true) 
    |-- marketplaceId: long (nullable = true) 
    |-- rating: long (nullable = true) 
    |-- region: string (nullable = true) 
    |-- type: string (nullable = true) 
    |-- uploadedDate: long (nullable = true) 

答えて

2

それは非常に簡単です:

val newDF = df.select("uploadedDate", "data.*"); 

あなたはuploadedDateとフィールドデータのすべてのサブ要素を選択するように指示し

例:

scala> case class A(a: Int, b: Double) 
scala> val df = Seq((A(1, 1.0), "1"), (A(2, 2.0), "2")).toDF("data", "uploadedDate") 
scala> val newDF = df.select("uploadedDate", "data.*") 
scala> newDF.show() 
+------------+---+---+ 
|uploadedDate| a| b| 
+------------+---+---+ 
|   1| 1|1.0| 
|   2| 2|2.0| 
+------------+---+---+ 

scala> newDF.printSchema() 
root 
|-- uploadedDate: string (nullable = true) 
|-- a: integer (nullable = true) 
|-- b: double (nullable = true) 
+0

ありがとうございました!出来た。 – Ajay

関連する問題