[英]Cannot resolve column name error for column passed as strings - Spark Scala
[英]Scala Spark - Cannot resolve a column name
这应该很简单,但是我对以下代码有疑问:
val test = spark.read
.option("header", "true")
.option("delimiter", ",")
.csv("sample.csv")
test.select("Type").show()
test.select("Provider Id").show()
test
是一个 dataframe 像这样:
类型 | 提供者 ID |
---|---|
一个 | asd |
一个 | bsd |
一个 | 惩教署 |
乙 | rrr |
Exception in thread "main" org.apache.spark.sql.AnalysisException:
cannot resolve '`Provider Id`' given input columns: [Type, Provider Id];;
'Project ['Provider Id]
它选择并显示Type
列就好了,但无法让它为Provider Id
工作。 我想知道是不是因为列名有空格,所以我尝试使用反引号,删除和替换空格,但似乎没有任何效果。 此外,当我使用 Spark 库 3.x 时它运行良好,但当我使用 Spark 2.1.x 时它不起作用(同时我需要使用 2.1.x)
附加:我尝试将 CSV 列顺序从Type
- Provider Id
更改为Provider Id
然后Type
。 错误是相反的, Provider Id
显示,但对于Type
,它现在抛出异常。
有什么建议么?
test.printSchema()
您可以使用printSchema()
的结果来查看 spark 读取您的列的准确程度,然后在您的代码中使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.