假設我有一個案例類如下:
final case class Person(name: String, age: Int)
我想創建一個具有復雜 StructType 的單列資料框Person。我希望火花來推斷模式。
val data = Seq(Person("Tom", 30), Person("Anna", 35))
val df = spark.createDataFrame(data)
我希望 spark 推斷資料框是具有復雜型別的單列Person。目前,它分為Person多個列
uj5u.com熱心網友回復:
您可以將資料映射到所需的結構。
一個助手類:
case class PersonWrapper(person: Person)
現在有兩種選擇:
- 在創建 Spark 資料框之前映射scala 序列:
val df = spark.createDataFrame(data.map( PersonWrapper(_)))
或者
- 映射Spark 資料幀/資料集:
val df = spark.createDataset(data).map(PersonWrapper(_))
uj5u.com熱心網友回復:
您可以使用:
final case class PersonAttributes(name: String, age: Int)
final case class Person(attributes: PersonAttributes)
然后:
val data = Seq(
Person(PersonAttributes("Tom", 30)),
Person(PersonAttributes("Anna", 35))
)
或者您可以按原樣創建資料集,然后使用withColumnwithstruct創建所需的復雜結構:
.withColumn("data", struct(col("name"), col("age")))
祝你好運!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/512172.html
標籤:斯卡拉阿帕奇火花大数据
