Scala重新分区无法解析符号
我正试图用每天一个分区来保存我的dataframe aa拼花地板文件。所以尝试使用date列。但是,我希望每个分区编写一个文件,因此使用Scala重新分区无法解析符号,scala,apache-spark,spark-dataframe,amazon-emr,Scala,Apache Spark,Spark Dataframe,Amazon Emr,我正试图用每天一个分区来保存我的dataframe aa拼花地板文件。所以尝试使用date列。但是,我希望每个分区编写一个文件,因此使用重新分区($“date”),但不断出现错误: 使用时,此错误“无法解析符号重新分区”,“value$不是stringContext的成员” DF.repartition($"date") .write .mode("append") .partitionBy("date") .parquet("s3://file-path/") 此错误类型不匹
重新分区($“date”)
,但不断出现错误:
使用时,此错误“无法解析符号重新分区”
,“value$不是stringContext的成员”
DF.repartition($"date")
.write
.mode("append")
.partitionBy("date")
.parquet("s3://file-path/")
此错误类型不匹配,预期列,实际字符串,
当我使用:
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转换为数据集的数据帧。您是否导入了sqlContext.implicits.\u
?我尝试过,但无法。它表示无法解析符号sqlContextAh,而Spark的较新版本很可能是导入Spark.implicits.\u
(如果您有名为Spark的SparkSession
)。这将使您能够使用$
符号,而不是使用col()
。是。但它仍然没有解析它的符号含义。是的,它正在工作,我在创建spark会话后添加了它。现在它起作用了。请加上它作为答案,我会接受的。谢谢