代码之家  ›  专栏  ›  技术社区  ›  Jared

在pyspark2.3中,如何处理json模式推断后不区分大小写导致的不明确列名[[副本]

  •  0
  • Jared  · 技术社区  · 7 年前

    {
       "key1": {
           "key2": "abc",
           "KEY2": "def"
        }
    }
    

    实际上,我有数十亿个这样的文档,每个文档都可能有数百个(甚至数千个)深度嵌套的结构,这些结构会周期性地改变。但这个简单的文件说明了这个问题。

    如果我这样做了:

    df = session.read.json(<file>)
    df.select('key1.key2')
    df.select('key1.KEY2')
    

    pyspark.sql.utils.AnalysisException: 'Ambiguous reference to fields StructField(key2,StringType,true), StructField(KEY2,StringType,true);'
    

    2 回复  |  直到 7 年前
        1
  •  5
  •   Prasad Khode    7 年前

    设置 spark.sql.caseSensitive true 在你的 SparkConf 对象

    val sparkConf = new SparkConf().setAppName("Test App")
    sparkConf.set("spark.sql.caseSensitive", "true")
    
        2
  •  2
  •   Chandan Ray    7 年前

    spark.sql("set spark.sql.caseSensitive=true")
    
    推荐文章