Apache spark org.apache.spark.sql.AnalysisException:无法解析给定的输入列
我有一个Spark程序,它读取CSV文件并将其加载到数据帧中。加载后,我将使用SparkSQL操作它们 运行Spark作业时,它失败,并出现以下异常: org.apache.spark.sql.AnalysisException:无法解析给定输入列[“alpha”、“beta”、“gamma”、“delta”、“action”] SparkSQL尝试分析以下内容时引发上述异常:Apache spark org.apache.spark.sql.AnalysisException:无法解析给定的输入列,apache-spark,dataframe,apache-spark-sql,Apache Spark,Dataframe,Apache Spark Sql,我有一个Spark程序,它读取CSV文件并将其加载到数据帧中。加载后,我将使用SparkSQL操作它们 运行Spark作业时,它失败,并出现以下异常: org.apache.spark.sql.AnalysisException:无法解析给定输入列[“alpha”、“beta”、“gamma”、“delta”、“action”] SparkSQL尝试分析以下内容时引发上述异常: SELECT *, IF(action = 'A', 1, 0) a_count, IF(action =
SELECT *,
IF(action = 'A', 1, 0) a_count,
IF(action = 'B', 1, 0) b_count,
IF(action = 'C', 1, 0) c_count,
IF(action = 'D', 1, 0) d_count,
IF(action = 'E', 1, 0) e_count
FROM my_table
这段代码在升级到Spark 2.0之前运行良好。有人知道是什么导致了这个问题吗
编辑:我正在使用DataRicks CSV解析器加载CSV文件:
sqlContext.read().format("csv")
.option("header", "false")
.option("inferSchema", "false")
.option("parserLib", "univocity")
.load(pathToLoad);
在Spark 2.0中,添加了内置CSV支持,请尝试以下操作
spark.read.format("csv").option("header","false").load("../path_to_file/file.csv")
spark.read.option("header", "false").csv("../path_to_file/file.csv")
尝试将反引号添加到您的选择中
SELECT *,
IF(`action` = 'A', 1, 0) a_count,
IF(`action` = 'B', 1, 0) b_count,
IF(`action` = 'C', 1, 0) c_count,
IF(`action` = 'D', 1, 0) d_count,
IF(`action` = 'E', 1, 0) e_count
FROM my_table
这也适用于一些数据库,如MySQL。我在集群中使用了2.0,而代码在2.3中,我面临着同样的问题,我通过在运行时使用适当的spark版本来消除它。您如何从csv中读取?Hi@ArunakiranNulu,我正在使用DataRicks csv库加载csv文件。请看我在原始帖子中的编辑。你曾经得到过这个问题的答案吗?我也遇到了同样的情况,我不想重新命名我的行动专栏。谢谢你的建议。我已经更改了代码,但仍然得到相同的错误。你在哪里测试这个?您是否正在尝试使用spark shell或spark submit在本地、单机、纱线或Mesos中进行测试?尝试使用spark submitI在spark shell解析XML时遇到问题,其中字段包含标点符号(.),以下df.select(“JOURNPOST.OJ”).show()失败,但df.select(“code>JOURNPOST.OJ”).show()有效。