Apache spark 列名更改和数据类型更改时如何读取spark DF中的数据
我有一个具有以下模式的拼花地板数据Apache spark 列名更改和数据类型更改时如何读取spark DF中的数据,apache-spark,apache-spark-sql,parquet,Apache Spark,Apache Spark Sql,Parquet,我有一个具有以下模式的拼花地板数据 Id:int, Name:String 在稍后的阶段,新的传入数据架构被更改为 Id:double/long, NAME:String 改型 更改字段名 我在同一个文件夹中有两个拼花图案数据。如何在spark.read.format(“拼花”).load(“”)中读取这两个图案 任何专家的建议都会很有帮助。通常在这种情况下,我会创建此表的v2并隔离我的拼花地板文件。从技术上讲,这是两个不同的表 如果需要将它们重新绑定在一起,则可以创建第二层,并将这两个表流
Id:int,
Name:String
在稍后的阶段,新的传入数据架构被更改为
Id:double/long,
NAME:String
spark.read.format(“拼花”).load(“”)中读取这两个图案
任何专家的建议都会很有帮助。通常在这种情况下,我会创建此表的v2并隔离我的拼花地板文件。从技术上讲,这是两个不同的表
如果需要将它们重新绑定在一起,则可以创建第二层,并将这两个表流到新表中。在一次性场景中,建议强制转换数据类型并重写目标拼花文件
scala> val df = Seq((1, "as"), (2, "fd")).toDF("a", "b")
df: org.apache.spark.sql.DataFrame = [a: int, b: string]
scala> df.show
+---+---+
| a| b|
+---+---+
| 1| as|
| 2| fd|
+---+---+
scala> df.withColumn("a", $"a".cast("double")).show
+---+---+
| a| b|
+---+---+
|1.0| as|
|2.0| fd|
+---+---+
如果没有,则需要使用相同的逻辑更新源系统