2012-01-25 3 views
5

PIGでどのようなファイル形式を読むことができますか?PIGで読むことができるファイル形式

どうすれば別の形式で保存できますか?私たちはCSVファイルを持っていて、これをMXLファイルとしてどのように保存したいのですか?私たちがSTOREコマンドを使用するたびにディレクトリを作成し、ファイルをpart-m-00000として保存します。ファイルの名前を変更したり、ディレクトリを上書きするにはどうしたらいいですか?

答えて

6

PIGを使用してどのようなファイル形式を読むことができますか?どのように私はそれらを別のフォーマットで保存できますか?

は数built-in loading and storing methodsありますが、それらは制限されています:

  • BinStorage - 「バイナリ」ストレージ
  • PigStorage - 何かで区切られロードとストアデータ(例えば、タブやカンマなど)
  • TextLoader - ラインでデータをロードするライン(すなわち、改行文字で区切られた)

piggybankコミュニティによって提供されるユーザー定義関数のライブラリであり、a number of loading and storing methodsがあります。これにはXMLローダーが含まれますが、XMLストアラーは含まれません。


たちはCSVファイルを持っているn iはこれを行う方法をMXLファイルとして保存したいと言いますか?

ここでXMLを意味すると仮定します。ファイルを縮小主体で分割するため、XMLに格納するのは少し難解ですが、ルートタグをどこに置くべきかをどのように知っていますか?これは適切なXMLを生成するための何らかの後処理であるはずです。あなたが行うことができます

ことの一つは、XML文字列にあなたの列を変換するwrite a UDFにある:

B = FOREACH A GENERATE customudfs.DataToXML(col1, col2, col3); 

例えば、言うcol1col2col3はそれぞれ"foo"37"lemons"、です。 UDFは、文字列"<item><name>Foo</name><num>37</num><fruit>lemons</fruit></item>"を出力できます。


我々はSTOREコマンドを使用するときには、ディレクトリを作成し、一部-M-00000は、どのように私は、ファイルの名前を変更し、ディレクトリを上書きすることができるように、ファイルを保存しますか?

出力ファイルの名前をpart-m-00000以外に変更することはできません。それがHadoopの仕組みです。名前を変更したい場合は、事後にhadoop fs -mv output/part-m-00000 newoutput/myoutputfileのようなものを入力してください。これは、豚のスクリプトを実行し、このコマンドを実行するbashスクリプトで行うことができます。

+0

thanks alott :) –

関連する問題