使用MergesChema时,Spark DataFrame重复列名称



我有一个巨大的火花数据框架,我使用以下语句

创建它
val df = sqlContext.read.option("mergeSchema", "true").parquet("parquet/partitions/path")

现在,当我尝试在上述数据框架上重命名或选择操作时,它失败了,说明发现的模棱两可的列,以下例外

org.apache.spark.sql.analysisexception:参考'product_type'is 模棱两可,可以是product_type#13,product_type#235

现在,我看到了列,发现有两个列Product_TypeProduct_type,它们似乎是相同的列,其中一个字母的情况不同,因为架构随着时间的推移而创建了一个不同的列。现在,我不介意保留重复的列,但由于某些原因不喜欢SqlContext Spard SqlContext。

我相信默认情况下spark.sql.caseSensitive配置是正确的,所以不知道为什么失败。我正在使用Spark 1.5.2。我是Spark的新手。

默认情况下, spark.sql.caseSensitive属性为 false,因此在您的renameselect语句之前,您应该将属性设置为true

sqlContext.sql("set spark.sql.caseSensitive=true")

相关内容

  • 没有找到相关文章

最新更新