我有一個 kotlin 資料類,如下所示
data class Persona_Items(
val key1:Int = 0,
val key2:String = "Hello")
data class Persona(
val persona_type: String,
val created_using_algo: String,
val version_algo: String,
val createdAt:Long,
val listPersonaItems:List<Persona_Items>)
data class PersonaMetaData
(val user_id: Int,
val persona_created: Boolean,
val persona_createdAt: Long,
val listPersona:List<Persona>)
fun main() {
val personalItemList1 = listOf(Persona_Items(1), Persona_Items(key2="abc"), Persona_Items(10,"rrr"))
val personalItemList2 = listOf(Persona_Items(10), Persona_Items(key2="abcffffff"),Persona_Items(20,"rrr"))
val persona1 = Persona("HelloWorld","tttAlgo","1.0",10L,personalItemList1)
val persona2 = Persona("HelloWorld","qqqqAlgo","1.0",10L,personalItemList2)
val personMetaData = PersonaMetaData(884,true,1L, listOf(persona1,persona2))
val spark = SparkSession
.builder()
.master("local[2]")
.config("spark.driver.host","127.0.0.1")
.appName("Simple Application").orCreate
val rdd1: RDD<PersonaMetaData> = spark.toDS(listOf(personMetaData)).rdd()
val df = spark.createDataFrame(rdd1, PersonaMetaData::class.java)
df.show(false)
}
當我嘗試創建資料框時,出現以下錯誤。 執行緒主 java.lang.UnsupportedOperationException 中的例外:不支持 src.Persona 型別的架構。
這是否意味著對于資料類串列,不支持創建資料框?請幫助我了解上面的代碼缺少什么。
uj5u.com熱心網友回復:
嗯,它對我來說是開箱即用的。我為您創建了一個簡單的應用程式來演示它,請在此處查看,https://github.com/szymonprz/kotlin-spark-simple-app/blob/master/src/main/kotlin/CreateDataframeFromRDD.kt
你可以運行這個 main,你會看到顯示正確的內容。如果您在 kotlin 專案中看到特定于 Scala 的東西,也許您需要修復您的構建工具配置,那么您可以在此專案中查看我的build.gradle或者您可以在此處閱讀更多相關資訊https://github.com/JetBrains/kotlin- spark-api/blob/main/docs/quick-start-guide.md
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/311446.html
