Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark org.apache.spark.sql.AnalysisException:无法解析给定的输入列_Apache Spark_Dataframe_Apache Spark Sql - Fatal编程技术网

Apache spark org.apache.spark.sql.AnalysisException:无法解析给定的输入列

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 =

我有一个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 = '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()有效。