Scala 使用定义的列名编写拼花地板文件,而不是使用dataframe';s列名
我对scala非常陌生,不知道如何深入了解这一点。 我有一个包含许多列的数据框架,如下所示:Scala 使用定义的列名编写拼花地板文件,而不是使用dataframe';s列名,scala,dataframe,apache-spark,parquet,Scala,Dataframe,Apache Spark,Parquet,我对scala非常陌生,不知道如何深入了解这一点。 我有一个包含许多列的数据框架,如下所示: +---+-----+--------+--------+ | _1|_2._1|_2._2._1|_2._2._2| +---+-----+--------+--------+ | 1| 2| 3| 4| +---+-----+--------+--------+ 我将其写入parquet中,但我已经有了一个模式,其中包括parquert中的列名,如下所示: va
+---+-----+--------+--------+
| _1|_2._1|_2._2._1|_2._2._2|
+---+-----+--------+--------+
| 1| 2| 3| 4|
+---+-----+--------+--------+
我将其写入parquet中,但我已经有了一个模式,其中包括parquert中的列名,如下所示:
val abcSchema = StructType(Array(
StructField("ModID", StringType),
StructField("ProGroupId", StringType),
StructField("ProdId", StringType),
StructField("SegId", StringType),
StructField("Date", DateType),
StructField("MShare", DoubleType),
StructField("MtId", IntegerType),
StructField("Flag", BooleanType),
StructField("ProType", StringType),
StructField("abc", StringType),
StructField("xyz", StringType),
StructField("ghi", DoubleType),
StructField("jkl", DoubleType),
StructField("mno", DoubleType),
StructField("pqr", DoubleType),
StructField("stu", DoubleType),
StructField("wxy", DoubleType),
StructField("zyw", DoubleType),
StructField("pou", DoubleType),
StructField("hyt", DoubleType),
StructField("kpol", DoubleType),
StructField("uyt", DoubleType),
StructField("qwre", DoubleType),
StructField("jgt", DoubleType),
StructField("lpou", DoubleType),
StructField("qret", DoubleType),
StructField("cvd", DoubleType),
StructField("bnhy", DoubleType),
StructField("nnn", DoubleType),
StructField("loi", DoubleType),
StructField("kql", DoubleType)
))
拼花地板文件的最终结果应该是这样的
+------+----------+--------+--------+
| ModID|ProGroupId|ProdId |abc |
+------+----------+--------+--------+
| 1 | 2 | 3| 4|
+------+----------+--------+--------+
我已经编写了下面的代码来使用该代码创建拼花地板
val result = Try({
dataFrame
.write
.mode(SaveMode.Overwrite)
.format("parquet")
.partitionBy("Date")
.save(outputPath)
})
但是,我不确定如何将“abcSchema”传递到上述代码中,以编写具有所需列的拼花地板。
有人能帮我吗???在读取数据帧本身的同时加载模式,然后写入
spark.read.format("<format>")
.option("<key>", "<value>")
.schema(abcSchema)
.load("<path-to-file>")
spark.read.format(“”)
.选项(“,”)
.schema(abcSchema)
.load(“”)
在读取数据帧本身的同时加载架构,然后写入
spark.read.format("<format>")
.option("<key>", "<value>")
.schema(abcSchema)
.load("<path-to-file>")
spark.read.format(“”)
.选项(“,”)
.schema(abcSchema)
.load(“”)