2016-10-04 4 views
2

私はCSVファイルから読み込み、データフレームにロードするSparkプログラムを持っています。ロードされると、私はSparkSQLを使ってそれらを操作しています。org.apache.spark.sql.AnalysisException:指定された入力列を解決できません

私のスパークジョブを実行する場合、それは失敗し、私に次の例外を与える:

org.apache.spark.sql.AnalysisException:「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 

このコードは2.0をスパークするために更新する前にうまく働いた:SparkSQLは以下を解析しようとすると、「ガンマ」、「デルタ」、「アクション」]

は、上記の例外がスローされます。この問題を引き起こす原因は誰か分かりますか?

編集:私はDatabricks CSVパーサーを使用してCSVファイルをロードしています:スパーク2.0で

sqlContext.read().format("csv") 
    .option("header", "false") 
    .option("inferSchema", "false") 
    .option("parserLib", "univocity") 
    .load(pathToLoad); 
+0

どのようにcsvから読んでいますか? –

+0

こんにちは@ArunakiranNulu、私はDatabricks CSVライブラリを使用してCSVファイルをロードしています。元の投稿で私の編集を参照してください。 – dmux

答えて

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") 
+0

提案していただきありがとうございます。コードを変更しましたが、同じエラーが表示されます。 – dmux

+0

ここでこれをテストしていますか?あなたはスパークシェルを使って試しているのですか、または地元のスタンドアローンかスタンドアローンかYARNかMesosでスパーク提出していますか? –

+0

スパーク送信を試みる – dmux

0

選択内容に逆引用符を追加してください。

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などの一部のデータベースにも適用されます。

関連する問題