砂漠の竜によるデータ統合

HadoopHadoopBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

不毛な砂漠の広大な広がりの中で、激しい砂嵐が吹き荒れ、地平線を覆う砂の雲を巻き上げています。旋回する混乱の中で、壮大な砂漠のドラゴンが空を飛び回り、その鱗が輝く金色に輝いています。この強力な生き物は、重要な使命を負っています。つまり、散在するデータソースから重要な情報を収集し、絶え間ない砂嵐を収束させるのに役立つ隠された洞察を明らかにすることです。

この実験の目的は、HadoopとHiveの力を活用するスキルを身に付けさせることで、複数のソースからのデータを結合して統合することができるようにすることです。データの結合の技術を習得することで、複雑な関係を解き明かし、貴重なパターンを明らかにする能力を開放します。まさに砂漠のドラゴンが激しい砂嵐の秘密を解き明かそうとするようにです。

環境設定

このステップでは、HadoopとHiveを使用するための必要な環境を準備します。

  1. ターミナルウィンドウを開き、次のコマンドを実行して hadoop ユーザーに切り替えます。
su - hadoop
  1. 次のコマンドを実行して /home/hadoop ディレクトリに移動します。
cd /home/hadoop
  1. ファイルを保存するための新しいディレクトリ join_lab を作成します。
mkdir join_lab
  1. join_lab ディレクトリに移動します。
cd join_lab

これで、この実験用の専用のワークスペースができました。

サンプル データセットの作成

このステップでは、Hive での結合操作を練習するために 2 つのサンプル データセットを作成します。

  1. 次の内容の employees.txt という名前の新しいファイルを作成します。
101,John Doe,Sales
102,Jane Smith,Marketing
103,Michael Johnson,IT
104,Emily Davis,HR
105,Adam Wilson,Finance
106,Lisa Brown,Operations
  1. 次の内容の departments.txt という名前の別のファイルを作成します。
1,Sales,New York
2,Marketing,Los Angeles
3,IT,Chicago
4,HR,San Francisco
  1. 次のコマンドを実行して Hive シェルを起動します。
hive
  1. 次のコマンドを実行してデータセットを Hive に読み込みます。
CREATE TABLE employees (emp_id INT, name STRING, dept STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/employees.txt' OVERWRITE INTO TABLE employees;

CREATE TABLE departments (dept_id INT, dept_name STRING, location STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/departments.txt' OVERWRITE INTO TABLE departments;

これらのコマンドでは、2 つの Hive テーブル employeesdepartments が作成され、それぞれのテキスト ファイルからデータが読み込まれます。

内部結合の実行

このステップでは、Hive で内部結合操作を行って employees テーブルと departments テーブルからのデータを結合する方法を学びます。

内部結合を行うには、次の Hive クエリを実行します。

CREATE TABLE result_1
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
JOIN departments d
ON e.dept = d.dept_name;

SELECT * FROM result_1;

このクエリは、それぞれ dept 列と dept_name 列を基に employees テーブルと departments テーブルを結合します。結合結果から emp_idnamedept_name、および location 列を取得します。

出力は次のようになります。

101     John Doe        Sales   New York
102     Jane Smith      Marketing       Los Angeles
103     Michael Johnson IT      Chicago
104     Emily Davis     HR      San Francisco

内部結合は、指定された条件に基づいて 2 つのテーブルの行を結合します。この場合、employees テーブルの dept 値を departments テーブルの dept_name 値と照合します。結果には、結合条件が満たされる行のみが含まれます。つまり、dept 値と dept_name 値が一致する行です。

左外部結合の実行

このステップでは、Hive で左外部結合操作を行う方法を学びます。

左外部結合を行うには、次の Hive クエリを実行します。

CREATE TABLE result_2
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
LEFT OUTER JOIN departments d
ON e.dept = d.dept_name;

SELECT * FROM result_2;

このクエリは、employees テーブルと departments テーブルの間で左外部結合を行います。左側のテーブル (employees) のすべての行と、右側のテーブル (departments) の一致する行が含まれます。右側のテーブルに一致する行がない場合、結果には右側のテーブルの列に NULL 値が含まれます。

出力は次のようになります。

101     John Doe        Sales   New York
102     Jane Smith      Marketing       Los Angeles
103     Michael Johnson IT      Chicago
104     Emily Davis     HR      San Francisco
105     Adam Wilson     NULL    NULL
106     Lisa Brown      NULL    NULL

左外部結合は、左側のテーブル (employees) のすべての行と、右側のテーブル (departments) の一致する行を返します。左側のテーブルの行に右側のテーブルに一致する行がない場合、結果には右側のテーブルの列に NULL 値が含まれます。

まとめ

この実験では、Hadoop と Hive を使ってデータセットに対して結合操作を行う方法を学びました。サンプル データセットを作成し、Hive テーブルに読み込むことで、内部結合と左外部結合の練習ができました。これらの結合操作をマスターすることで、散在するソースからの情報を組み合わせて激しい砂嵐の秘密を解き明かすのと同じように、複数のソースからのデータを結合して分析する能力を身につけました。

この実験全体を通じて、私は明確な指示、コード例、説明を用いて各ステップを案内する、構造化された没入型の学習体験を提供することを目指しました。チェッカーを使用することで、進捗状況を検証し、改善すべき点を特定することができました。データ分析で直面する課題に共感を呼び起こすシナリオをデザインすることで、学習プロセスをより魅力的で関連性の高いものにしたいと思います。

全体的に、この実験は Hadoop と Hive に関する技術的スキルだけでなく、複雑な問題を解決する際のデータ統合と分析の重要性に対するより深い理解を育成しました。砂漠の竜がその使命に向き合うように、新たに身につけた知識があなたに自信と創造性を持って現実世界のデータ課題に立ち向かう力を与えます。