2017-04-21 4 views
0

ちょっと今、私はハープのハーブ用の入力テキストファイルを作成しようとしていますが、私はちょっと初心者だから構いません。このテキストファイルを正しいフォーマットで作成するhadoopに区切り文字を付けて

コマンドはこれです:

hive> create table employee(emp_id int,name string,salary double) row format delimited fields terminated by ','; 

それでは、何を意味するかを区切らない私のテキストファイルは可能でなければなりませんか?

大丈夫ですか?

1244, Daniel, 200000 
1344, John, 59999 
8742, Smith, 98009 

私のフォーマットは正しいですか?

+0

よくそれ以外の場合は、辞書で区切られたルックアップ –

+0

なぜHiveをインストールする必要があるのですか?Hadoopを学ぶことに興味がある場合は、HortonworksまたはCloudera仮想マシンをダウンロードしてください。あらかじめ組み込まれています –

+0

あなたが混乱していることはわかりません。そのクエリを実行すると現在どのようなエラーが発生していますか?ファイルをまだ読み込んでいません。私が知る限りでは –

答えて

0

標準のCSVファイルを作成しています。コンマ区切り(または区切り)のファイル。

これはうまく見えますが、カンマの周りの余分なスペースを削除したい場合は、データベーステーブルに保存する必要があります。

はその後、あなたも、あなたはそれが正確に何をするか理解する必要がLOAD DATA LOCAL INPATH構文を学ぶか、ハイブを理解するためにLOCATION

+0

私はそれを書く必要はないと思います。あなたが提供しているものは大丈夫です。私は余分なスペースを言うとき、私はまさにそれを意味する。あなたは 'Daniel'をデータベースに入れたいのですか、' 'Daniel''ですか?注:整数値の場合は、空白を持たないため、もっと重要です。 –

+0

これは私のコマンドです: – NewSQLguy

+0

あなたはすでに私の答えを受け入れています。追加の問題がある場合は、自由に追加の投稿を作成してください。 –

0

パス上EXTERNALテーブルを使用する必要があります。 Hiveは、物理的に格納されたデータ(ほとんどの場合ファイル)にメタデータを作成し、このデータをクエリできるようにするHadoopエコシステム内のコンポーネントです。このメタデータは、リレーショナルデータベースに格納されます。 HiveはSQLエンジンも提供しています。

ハイブデータにクエリがある場合、アプリケーションはメタデータ(どこにファイルがあるか、どのような構造を持っているかなど)を検索します。対応するジョブが実行されてデータが取り出されます。

Hive CREATE TABLEコマンドでは、基本的にこのメタデータを定義します。

  • 構造(JSON、CSV、カスタム...):

    は、次のような要因を定義します。

  • 場所分散ファイルシステム(HDFS)
  • 内のパーティション(サブディレクトリ)
  • 区切り文字
  • 特定のハイブでフォーマット(のTextFormat、列ベースの特殊な形式)
  • 圧縮比

カンマで区切られたcsvファイルについてのエントリをメタストアに作成するようにHiveに指示する、[テーブルの作成]コマンド。場所を指定しなかった場合、デフォルトの場所の下に配置されます(標準設定を変更していない場合は、HDFSのapps/hive/warehouse/employeeとなります)。

関連する問題