我有一个DataFrame,其中的字段包含句点 . 当我尝试对它们使用select()时,Spark无法解决它们,可能是因为' . '用于访问嵌套字段 .
这是错误:
enrichData.select(“google.com”)org.apache.spark.sql.AnalysisException:无法解析'google.com'给定的输入列google.com,yahoo.com,....
有没有办法访问这些列?或者更改列名的简单方法(因为我无法选择它们,如何更改名称?) .
您可以删除架构并重新创建它,而不使用以下句点:
val newEnrichData = sqlContext.createDataFrame( enrichData.rdd, StructType(enrichData.schema.fields.map(sf => StructField(sf.name.replace(".", ""), sf.dataType, sf.nullable) )) )
1 回答
您可以删除架构并重新创建它,而不使用以下句点: