[英]How to create a DataSet from RDD using Case Class with composed columns
大家好,我使用 Spark/Scala 2.4.4 並且有一個帶有 Persons 的 RDD[Map(String, String)] ......行是這樣的:
rdd = Map(
(FirstName -> "Michael")
(SecondName -> "Jackson")
)
我創建了一個這樣的案例 class :
case class Person(FirstName: String, SecondName: String) {
val FullName = FirstName + SecondName
}
如何將此RDD轉換為Dataset [Person],並且當class被實例化或我需要使用column運行時,可以生成FullName列?
謝謝!
您需要將 map 展開為兩列並將行轉換為Person
。
val rdd = sc.parallelize(Seq(Map(
("FirstName" -> "Michael"),
("SecondName" -> "Jackson")
)))
val df = rdd.toDF("person").select("person.FirstName", "person.SecondName").as[Person]
然后您可以使用map
獲取 FullName,例如:
df.map(r => r.FullName).show
+--------------+
| value|
+--------------+
|MichaelJackson|
+--------------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.