Ume*_*cha 1 scala apache-spark apache-spark-sql
我有一个巨大的 Spark DataFrame,我使用以下语句创建它
val df = sqlContext.read.option("mergeSchema", "true").parquet("parquet/partitions/path")
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试在上面的 DataFrame 上执行列重命名或选择操作时,它失败说发现了不明确的列,但出现以下异常
org.apache.spark.sql.AnalysisException:引用“Product_Type”不明确,可能是 Product_Type#13、Product_Type#235
现在我看到列,发现有两列Product_Type,Product_type它们似乎是相同的列,但由于随着时间的推移模式合并而创建了一个字母大小写不同的列。现在我不介意保留重复的列,但 Spark sqlContext 由于某种原因不喜欢它。
我相信默认spark.sql.caseSensitive配置是正确的,所以不知道为什么会失败。我正在使用 Spark 1.5.2。我是 Spark 新手。
默认情况下,spark.sql.caseSensitive属性位于or语句false之前,您应该将该属性设置为renameselecttrue
sqlContext.sql("set spark.sql.caseSensitive=true")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4922 次 |
| 最近记录: |