我正在尝试将我的数据框保存为每天一个分区的镶木地板文件。所以试着使用日期列。但是,我想为每个分区写一个文件,所以使用repartition($"date")
,但不断收到错误:
我使用时出现此错误"cannot resolve symbol repartition"
和"value $ is not a member of stringContext"
,
DF.repartition($"date")
.write
.mode("append")
.partitionBy("date")
.parquet("s3://file-path/")
我使用时出现此错误Type mismatch, expected column, actual string,
:
DF.repartition("date")
.write
.mode("append")
.partitionBy("date")
.parquet("s3://file-path/")
但是,这没有任何错误。
DF.write.mode("append").partitionBy("date").parquet("s3://file-path/")
我们不能在重新分区中使用日期类型吗?这有什么不对吗?
答案 0 :(得分:2)
要使用$
代替col()
,您需要先导入spark.implicits
。 spark
这里是SparkSession
的实例,因此导入必须在创建SparkSession
之后完成。一个简单的例子:
val spark = SparkSession.builder.getOrCreate()
import spark.implicits._
此导入还将启用其他功能,例如将RDD转换为分别为toDF()
和toDS()
的数据集的数据帧。