3

次の問題があります... Hive を使用していて、いくつかの (異なる) 行の文字列を含むファイルを追加したいと考えています。これらには、次のような固定サイズのフィールドが含まれています。

A20130420bcd   34  fgh  

フィールドの長さは 1、8、6、4、3 です。分離すると、次のようになります。

"A,20130420,bcd,fgh"

文字列を読み取ってフィールドに並べ替える可能性はありますか?

substring(col_value,1,1) Field1 

等?文字列の既に読み取られた部分を切り取るとパフォーマンスが向上すると思いますが、ここで指定された関数を使用してこれを行う方法は考えられます。

第二に、前に述べたように、最初の文字で順序付けられ、識別されるさまざまなタイプの文字列があります。今は WHERE ステートメントでそれらをチェックするだけですが、最初の文字列だけを見つけるためだけにファイル全体を実行するため、恐ろしいことです。 . 特定の行を番号で読み取る方法はありますか? 最初の文字列が特定の種類になることがわかっている場合は、直接読み取ることができますか?

次のようになります。

insert overwrite table TEST 
SELECT 
substring(col_value,1,1) field1, 
... 
substring(col_value,10,3) field 5 
from temp_data WHERE substring(col_value,1,1) = 'A'; 

これに関するアイデアはありますか?

私はいくつかのアイデアを聞きたいです=)

4

1 に答える 1