2016-10-27 4 views
0

ハイブテーブルに読み込むテキストファイルがあります。データの特別編成データ用ハイブテーブルの作成方法

フォーマットは、私はこの種のデータのためにハイブ内のテーブルを作成したい

Id|^|SegmId|^|geographyId|^|Sequence|^|Subtracted|^|FFAction|!| 
4295875876|^|3|^|110170|^|1|^|False|^|I|!| 
4295876137|^|2|^|110170|^|1|^|False|^|I|!| 
4295876137|^|8|^|100219|^|1|^|False|^|I|!| 

を下回るようなものです。

テーブルを作成する方法を教えてください。

これは私が試したが、nullを取得したものである(また、私たちの列のデータ型を提案してください):

create table if not exists GeographicSegment 
(
    Id int, 
    SegId int, 
    geographyId int, 
    Sequence int, 
    Subtracted String, 
    FFAction String 
) row format delimited fields terminated by '|!|' LINES TERMINATED BY '\n' ; 

答えて

0

これはSERDEPROPERTIESで私

行形式SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' のために働いています( "field.delim" = "|^|")

をtblproperties
0

あなたのフィールドは'|^|'で終了し、あなたのラインが'|!|\n'

で終了しているようです
+0

はいラインターミネーションはこれを受け入れます – SUDARSHAN

0

ハイブは、あなたが何をしているかのデータ型について

は、あなたがここでそれを処理するための方法を見つけることができます

Solution

最初の列IDを除いて正しいです、区切り文字として複数の文字をサポートしていません。 。存在する値はINTの範囲を超えています。 BIGINTにすることができます。

関連する問題