[解決済み] Pig:FLATTENキーワード
2022-02-16 05:29:34
質問
の使い方で少し迷っています。
FLATTEN
というキーワードをPIGで使用しています。
以下のデータセットについて考えてみましょう。
tuple_record: {details: (firstname: chararray,lastname: chararray,age: int,sex: chararray)}
を使用せずに
FLATTEN
こんな感じで、フィールド(firstnameとする)にアクセスできるんです。
display_firstname = FOREACH tuple_record GENERATE details.firstname;
ここで
FLATTEN
というキーワードがあります。
flatten_record = FOREACH tuple_record GENERATE FLATTEN(details);
DESCRIBE
はこれを与えてくれる。
flatten_record: {details::firstname: chararray,details::lastname: chararray,details::age: int,details::sex: chararray}
そのため、このフィールドに直接アクセスすることができます。
dereferencing
のようにします。
display_record = FOREACH flatten_record GENERATE firstname;
これに関する質問
FLATTEN
というキーワードがあります。
1)2つのうちどちらを使うか(すなわち
FLATTEN
は、同じ出力を得るために最適化された方法ですか?
2) 特別なシナリオがある場合。
FLATTEN
というキーワードがある場合、期待する出力は得られないのでしょうか?
どのような場面で使うのか、用途を明確に教えてください。
どのように解決するのですか?
- バッグやタプルの中にデータがあり、そのレベルのネストを削除したい場合があります。
- データをその場で切り替えたり、特定のフィールドでグループ化したりしたい場合、バッグからそれらのエントリを取り出す方法が必要です。
Pigのドキュメントにある通りです。
FLATTEN演算子は、構文的にはUDFのように見えますが、その正体は 実際には、タプルとバッグの構造を変更する演算子である。 UDFでは不可能な方法です。Flattenはタプルやバッグの入れ子を解除する。これは 考え方は同じですが、操作と結果がそれぞれ異なります。 のような構造を持つ。
詳細はこちらをご覧ください。 このリンク FLATTENの使い方が例文付きでわかりやすく説明されています。
関連
-
[解決済み] hadoop.tmp.dirはどうすればいいのでしょうか?
-
[解決済み] Apache Hive 小数点以下2桁に四捨五入する方法は?
-
[解決済み] Hive - 現在使用している実行エンジンを知る方法
-
[解決済み] ハイブがバケットにデータを挿入する際に作成した小さなファイルをマージする方法は?
-
[解決済み] HDFSのHiveプロキシユーザーの最適なソリューションは何ですか?
-
[解決済み] Hive - Hiveサービスのクラスパスを印刷する方法
-
[解決済み] 最初のhadoopプロジェクトエラー。"入力パスが存在しません"
-
[解決済み] Facebookのデータ分析ツール「HiPal」とは、どのようなものなのか?
-
[解決済み] Hiveで日付の差を計算する方法
-
[解決済み] HiveにStringのsplit関数はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】なぜHiveのFetchタスクはMapのみのタスクより速く動作するのですか?
-
[解決済み] Apache Hive 小数点以下2桁に四捨五入する方法は?
-
[解決済み] HbaseのcheckAndPutとcheckAndMutateの違いは何ですか?
-
[解決済み] 単一ファイルをコピーする際にhadoop discpの問題が発生する
-
[解決済み] Hive - 現在使用している実行エンジンを知る方法
-
[解決済み] HadoopでDatanodeのプロセスが実行されていない
-
[解決済み] HDFSのHiveプロキシユーザーの最適なソリューションは何ですか?
-
[解決済み] Pig:FLATTENキーワード
-
[解決済み] curl で --negotiate を使用する場合、keytab ファイルは必要ですか?
-
[解決済み] Facebookのデータ分析ツール「HiPal」とは、どのようなものなのか?