Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala重新分区无法解析符号_Scala_Apache Spark_Spark Dataframe_Amazon Emr - Fatal编程技术网

Scala重新分区无法解析符号

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/") 此错误类型不匹

我正试图用每天一个分区来保存我的dataframe aa拼花地板文件。所以尝试使用date列。但是,我希望每个分区编写一个文件,因此使用
重新分区($“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会话后添加了它。现在它起作用了。请加上它作为答案,我会接受的。谢谢