2016-11-15 21 views
0

私はhadoopを初めて使用しています。新しいテーブルを作成する際に、Hiveで発生したエラーに関するヘルプが必要です。私はこれを通過しましたHive FAILED: ParseException line 2:0 cannot recognize input near ''macaddress'' 'CHAR' '(' in column specificationHiveで表を作成中にエラーが発生しました

私の質問:スクリプトのテーブルの場所を書く必要がありますか?私は開始時にテーブルの場所を書いているので、場所を書くことには恐れがある。何故ならば、それはmulfunction操作によってデータベースの他の部分を乱すべきではないからです。ここで

は私のクエリです:

CREATE TABLE meta_statistics.tank_items (
    shop_offers_history_before bigint, 
    shop_offers_temp bigint, 
    videos_distinct_temp bigint, 
    deleted_temp bigint, 
    t_stamp timestamp) 
    CLUSTERED BY (
    tank_items_id) 
    INTO 8 BUCKETS 
    ROW FORMAT SERDE 
    TBLPROPERTIES (transactional=true) 
    STORED AS ORC; 

はParseExceptionライン1

IS-私は取得していますエラー:3 'TBLPROPERTIES' 近い入力を認識することができない '(' 'トランザクション'

エラーの可能性はどのようになり、どのようにそれらを削除できますか?

あなたは

2)TBLPROPERTIESキーの値は、あなたが

として置き換える

を与えられた列にあるはず CLUSTERED BY値を与える場合は、二重引用符

3)である必要があり、いくつかのserdeを渡す必要があります> -

答えて

0

作成クエリに構文エラーがあります。あなたが共有しているエラーは、ハイブは'TBLPROPERTIES'の近くの入力を認識できないと言います。

ソリューション:

ハイブの構文を1として、TBLPROPERTIESに渡されたキー値は、二重引用符で囲む必要があります。私はあなたのクエリを修正する場合、それはなりますのでTBLPROPERTIES ("transactional"="true")

CREATE TABLE meta_statistics.tank_items ( 
    shop_offers_history_before bigint, 
    shop_offers_temp bigint, 
    videos_distinct_temp bigint, 
    deleted_temp bigint, 
    t_stamp timestamp 
) CLUSTERED BY (tank_items_id) INTO 8 BUCKETS 
    ROW FORMAT SERDE TBLPROPERTIES ("transactional"="true") STORED AS ORC; 

あなたが他の構文を取得した場合、その後STORED AS , CLUSTERED BY , TBLPROPERTIESの順序としてあることを確認して、それらをエラー、クエリ上で実行し、それは次のようにする必要がありますハイブ構文ごとに。

詳細については、これを参照してください。 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable

+0

ありがとうReena、私はそれに取り組んでいます。 –

+0

私にはそれがあなたのために働くかどうか教えてください:) –

+0

こんにちはReena、私は新しいデータベースmeta_statisticsを作成し、修正されたクエリをexcecuteと別のエラーに直面SemanticException [エラー10002]:無効な列の参照ですが、エラーは何ですか、それをどうしたらいいですか?あなたの時間ありがとう –

0

1)ROW FORMAT SERDE次の

CREATE TABLE meta_statistics.tank_items (shop_offers_history_before bigint, shop_offers_temp bigint, videos_distinct_temp bigint, deleted_temp bigint, t_stamp timestamp) CLUSTERED BY (shop_offers_history_before) INTO 8 BUCKETS ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' STORED AS ORC TBLPROPERTIES ("transactional"="true"); 

希望は、このことができます

+0

こんにちはニーマル、私が実装した何を示唆しているが、私にエラー - はParseExceptionラインの別のタイプをshwoing 40:20不一致入力「org.apache.hadoop.hive.qlを.io.orc.OrcSerde 'は、SERD形式の指定で' SERDE 'の近くにStringLiteralがあります –

+0

私はORCとtblpropertiesとして保存された位置を変更していますが、データベースには存在しません:meta_statistics。したがって、データベースを作成するか、別のデータベースを使用する必要があります。どうもありがとう。 –

関連する問題