Scala 重新分区无法解析符号
Scala repartition cannot resolve symbol
我正在尝试将我的数据框保存为一个镶木地板文件,每天一个分区。所以尝试使用日期列。但是,我想每个分区写一个文件,所以使用 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/")
我们不能在重新分区中使用日期类型吗?这里有什么问题吗?
要使用 $
符号代替 col()
,您需要先导入 spark.implicits
。 spark
这里是一个 SparkSession
的实例,因此导入必须在创建 SparkSession
之后完成。一个简单的例子:
val spark = SparkSession.builder.getOrCreate()
import spark.implicits._
此导入还将启用其他功能,例如分别使用 toDF()
和 toDS()
将 RDD 转换为数据集的数据帧。
我正在尝试将我的数据框保存为一个镶木地板文件,每天一个分区。所以尝试使用日期列。但是,我想每个分区写一个文件,所以使用 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/")
我们不能在重新分区中使用日期类型吗?这里有什么问题吗?
要使用 $
符号代替 col()
,您需要先导入 spark.implicits
。 spark
这里是一个 SparkSession
的实例,因此导入必须在创建 SparkSession
之后完成。一个简单的例子:
val spark = SparkSession.builder.getOrCreate()
import spark.implicits._
此导入还将启用其他功能,例如分别使用 toDF()
和 toDS()
将 RDD 转换为数据集的数据帧。