引用 'unit' 不明确,可能是:unit, unit
Reference 'unit' is ambiguous, could be: unit, unit
我正在尝试从 S3 存储桶加载所有传入的镶木地板文件,并使用 delta-lake 处理它们。我遇到了异常。
val df = spark.readStream().parquet("s3a://$bucketName/")
df.select("unit") //filter data!
.writeStream()
.format("delta")
.outputMode("append")
.option("checkpointLocation", checkpointFolder)
.start(bucketProcessed) //output goes in another bucket
.awaitTermination()
它抛出异常,因为“unit”有歧义。
我试过调试它。由于某种原因,它找到了两次“unit”。
这是怎么回事?会不会是编码问题?
编辑:
这就是我创建 spark 会话的方式:
val spark = SparkSession.builder()
.appName("streaming")
.master("local")
.config("spark.hadoop.fs.s3a.endpoint", endpoint)
.config("spark.hadoop.fs.s3a.access.key", accessKey)
.config("spark.hadoop.fs.s3a.secret.key", secretKey)
.config("spark.hadoop.fs.s3a.path.style.access", true)
.config("spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version", 2)
.config("spark.hadoop.mapreduce.fileoutputcommitter.cleanup-failures.ignored", true)
.config("spark.sql.caseSensitive", true)
.config("spark.sql.streaming.schemaInference", true)
.config("spark.sql.parquet.mergeSchema", true)
.orCreate
编辑2:
df.printSchema()
的输出
2020-10-21 13:15:33,962 [main] WARN org.apache.spark.sql.execution.datasources.DataSource - Found duplicate column(s) in the data schema and the partition schema: `unit`;
root
|-- unit: string (nullable = true)
|-- unit: string (nullable = true)
像这样读取相同的数据...
val df = spark.readStream().parquet("s3a://$bucketName/*")
...解决问题。不管出于什么原因。我很想知道为什么...:(
我正在尝试从 S3 存储桶加载所有传入的镶木地板文件,并使用 delta-lake 处理它们。我遇到了异常。
val df = spark.readStream().parquet("s3a://$bucketName/")
df.select("unit") //filter data!
.writeStream()
.format("delta")
.outputMode("append")
.option("checkpointLocation", checkpointFolder)
.start(bucketProcessed) //output goes in another bucket
.awaitTermination()
它抛出异常,因为“unit”有歧义。
我试过调试它。由于某种原因,它找到了两次“unit”。
这是怎么回事?会不会是编码问题?
编辑: 这就是我创建 spark 会话的方式:
val spark = SparkSession.builder()
.appName("streaming")
.master("local")
.config("spark.hadoop.fs.s3a.endpoint", endpoint)
.config("spark.hadoop.fs.s3a.access.key", accessKey)
.config("spark.hadoop.fs.s3a.secret.key", secretKey)
.config("spark.hadoop.fs.s3a.path.style.access", true)
.config("spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version", 2)
.config("spark.hadoop.mapreduce.fileoutputcommitter.cleanup-failures.ignored", true)
.config("spark.sql.caseSensitive", true)
.config("spark.sql.streaming.schemaInference", true)
.config("spark.sql.parquet.mergeSchema", true)
.orCreate
编辑2: df.printSchema()
的输出2020-10-21 13:15:33,962 [main] WARN org.apache.spark.sql.execution.datasources.DataSource - Found duplicate column(s) in the data schema and the partition schema: `unit`;
root
|-- unit: string (nullable = true)
|-- unit: string (nullable = true)
像这样读取相同的数据...
val df = spark.readStream().parquet("s3a://$bucketName/*")
...解决问题。不管出于什么原因。我很想知道为什么...:(