想一個struct列添加到數據幀,但結構有超過100 領域。
我瞭解到,案例類可以改變結構柱,但情況每班不超過22場的極限(在線火花1.6.3與2.10.4階)。
可以普通類做到這一點嗎?我必須實現哪些功能或接口?
還有一個「org.apache.spark.sql.functions.struct」,但目前看來,它不能設置結構的字段的名稱。 提前致謝。我如何大的結構柱添加到數據幀
0
A
回答
2
但目前看來,它不能設置結構的字段的名稱。
可以。例如:
import org.apache.spark.sql.functions._
spark.range(1).withColumn("foo",
struct($"id".alias("x"), lit("foo").alias("y"), struct($"id".alias("bar")))
).printSchema
root
|-- id: long (nullable = false)
|-- foo: struct (nullable = false)
| |-- x: long (nullable = false)
| |-- y: string (nullable = false)
| |-- col3: struct (nullable = false)
| | |-- bar: long (nullable = false)
+1
非常感謝,這就是我想要的。 – xuhai
0
沒有必要定義測試用例類的這個結構,你可以創建結構類型是這樣的:
val struct =
StructType(
StructField("a", IntegerType, true) ::
StructField("b", LongType, false) ::
StructField("c", BooleanType, false) :: Nil)
這個結構可以有任意長度。
,那麼你可以讀數據幀這樣
val df = sparkSession.read.schema(struct).//your read method
+0
感謝您的回答。現在我已經有一個大約有40列的數據框,並且想要添加一個類型爲struct的新列。你的意思是我必須定義一個結束現有的40個字段和新結構的新結構? – xuhai
相關問題
- 1. 數據幀添加到構造名
- 2. 如何添加列到數據幀中的大熊貓
- 3. 大熊貓樞軸數據幀結構
- 4. 如何將結構添加到結構數組的結尾?
- 5. 如何將tapply結果添加到現有數據幀
- 6. 將數據添加到結構數組
- 7. 如何將結構添加到C中的結構數組?
- 8. 將更多數據添加到結構
- 9. 如何添加到Perl中的數據結構
- 10. 添加數據幀A的列到數據幀B中的列
- 11. 計數數並添加到結果數據幀
- 12. R寫入功能結合柱到數據幀
- 13. Python的大熊貓 - 添加行到一個空的數據幀
- 14. 如何描述R中數據幀的數據結構?
- 15. 添加到有光澤的數據幀
- 16. 如何將數據標籤添加到柱狀圖?
- 17. 常見的數據結構VS據幀
- 18. 的Python:添加一列到大熊貓數據幀
- 19. 添加到大熊貓的數據幀列與NA
- 20. 將數據幀向量添加到數據幀表
- 21. 追加到大熊貓數據幀
- 22. 如何colnames添加到所有的數據幀列表中的
- 23. 如何在大數據幀
- 24. CSS柱結構
- 25. 談到大熊貓據幀到柱狀圖使用Matplotlib
- 26. 如何添加額外的數據幀到VNC通信?
- 27. 如何序因素添加到數據幀中的R
- 28. 平柱結構數據更改爲層級結構
- 29. 缺失值添加到數據幀
- 30. 將數據幀添加到另一個
去UDF如果可能.https://stackoverflow.com/questions/33826495/spark-scala-2-10-tuple-limit –
我不明白你不能夠是什麼意思設置struct的字段名稱。你可以這樣做這樣 VAL領域=新StructField( 「名」,StringType,FALSE)::新StructField( 「時代」,IntegerType,FALSE)::名單(新StructField( 「時代」,IntegerType,FALSE)) – BDR
謝謝巴拉吉雷迪。現在我已經有一個大約有40列的數據框,並且想要添加一個類型爲struct的新列。你的意思是我必須定義一個新的結構,其中包含現有的40個字段和具有超過100個字段的新結構? – xuhai