首页 文章

使用句点访问列名称 - Spark SQL 1.3

提问于
浏览
1

我有一个DataFrame,其中的字段包含句点 . 当我尝试对它们使用select()时,Spark无法解决它们,可能是因为' . '用于访问嵌套字段 .

这是错误:

enrichData.select(“google.com”)org.apache.spark.sql.AnalysisException:无法解析'google.com'给定的输入列google.com,yahoo.com,....

有没有办法访问这些列?或者更改列名的简单方法(因为我无法选择它们,如何更改名称?) .

1 回答

  • 1

    您可以删除架构并重新创建它,而不使用以下句点:

    val newEnrichData = sqlContext.createDataFrame(
      enrichData.rdd, 
      StructType(enrichData.schema.fields.map(sf => 
        StructField(sf.name.replace(".", ""), sf.dataType, sf.nullable)
      ))
    )
    

相关问题