【Spark】Spark DataFrame schema轉(zhuǎn)換方法

比如原始表的schema如下:


image.png

現(xiàn)在想將該DataFrame 的schema轉(zhuǎn)換成:
id:String,
goods_name:String
price: Array<String>

  1. sql 轉(zhuǎn)換
    spark.sql("create table speedup_tmp_test_spark_schema_parquet12 using parquet as select cast(id as string),cast(goods_name as string),cast(price as array<string>) from tmp_test_spark_schema_parquet")

  2. case class 變換
    case class newSchemaClass(id: String, goods_name: String, price: Array[String])

// 原dataframe
val df = spark.sql("select * from tmp_test_spark_schema_parquet")

// 新dataframe
val newDF = df .rdd.map { r =>
newSchemaClass(r(0).toString, r(1).toString, r.getSeqInt.map(_.toString).toArray)
}.toDF()

// 獲取具體數(shù)據(jù)
newDF.collect()(2).getListString

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容