2

シナリオは次のとおりです。

Twitter データを格納する Hive テーブルがあるとします。

5 つの列があるとします。1 つの列はテキスト データです。

ここで、twitter テキスト データのセンチメント分析からのセンチメント値を格納する 6 番目の列をどのように追加しますか。Sentiment140 や virusheat などの感情分析 API を使用する予定です。

Hive で「派生」列を実装する方法に関するヒントをいただければ幸いです。

ありがとう。

4

2 に答える 2

1

残念ながら、Hive APIではテーブルに新しい列を追加できますが(ALTER TABLE foo ADD COLUMNS(バーバイナリ)を使用)、これらの新しい列はNULLになり、入力できません。これらの列にデータを追加する唯一の方法は、テーブルの行をクリアし、新しいファイルからデータをロードすることです。この新しいファイルには、その新しい列のデータが含まれています。

あなたの質問に答えるために:あなたは、ハイブではできません。提案することを行うには、6列のファイルが必要です。6列目にはすでに感情分析データが含まれています。次に、これをHDFSにロードし、Hiveを使用してクエリを実行できます。

編集:新しい列を追加した後にテーブルを.csvとしてエクスポートし(上記を参照)、それをM $ Excelにポップして、テーブル値に対して関数を実行できる例を試してみました。関数を追加した後、.csvを保存してアップロードし、そこからテーブルを再構築しました。これが特に役立つかどうかはわかりませんが(感情分析をExcelで実行できる可能性は低いため)、Hiveで列を計算したいだけの人には役立つ可能性があります。

参照:

https://cwiki.apache.org/Hive/gettingstarted.html#GettingStarted-DDLOperations

http://comments.gmane.org/gmane.comp.java.hadoop.hive.user/6665

于 2013-02-27T03:23:40.287 に答える
1

これは、別のテーブルを使用せずに 2 つの手順で行うことができます。手順:

  1. 元のテーブルを変更して必要な列を追加します
  2. 元のテーブルのすべての列 + 計算列の「テーブル選択の上書き」を元のテーブルに実行します。

警告: これは、クラスター化されたインストールではテストされていません。

于 2013-03-23T08:15:31.343 に答える