ホームページ  >  記事  >  Java  >  Java の基礎から実践的な応用への入門: ビッグデータの実践的な分析

Java の基礎から実践的な応用への入門: ビッグデータの実践的な分析

WBOY
WBOYオリジナル
2024-05-07 16:33:01484ブラウズ

このチュートリアルは、Java の基礎から実践的なアプリケーションまでビッグ データ分析スキルを習得するのに役立ちます。 Java の基本 (変数、制御フロー、クラスなど)、ビッグ データ ツール (Hadoop エコシステム、Spark、Hive)、および実践的なケース (OpenFlights からの飛行データの取得) が含まれています。 Hadoop を使用してデータを読み取り、処理し、フライトの目的地として最も頻繁に使用される空港を分析します。 Spark を使用してドリルダウンし、目的地への最新のフライトを見つけます。 Hive を使用して対話的にデータを分析し、各空港のフライト数をカウントします。

Java の基礎から実践的な応用への入門: ビッグデータの実践的な分析

#Java の基礎から実践的な応用: ビッグデータの実践的な分析

#はじめに ビッグデータ時代の到来により、ビッグデータ分析スキルを習得することが重要になっています。このチュートリアルでは、Java の基礎から Java を使用した実践的なビッグ データ分析までを説明します。

Java の基本

変数、データ型、演算子
  • 制御フロー (if-else、for、while)
  • クラス、オブジェクト、メソッド
  • ##配列とコレクション (リスト、マップ、コレクション)
  • ##ビッグ データ分析ツール
# #Hadoop エコシステム (Hadoop、MapReduce、HDFS)

Spark

Hive
  • 実用的なケース: Java を使用した飛行データの分析
ステップ 1: データを取得する

OpenFlights データセットからフライト データをダウンロードします。

ステップ 2: Hadoop を使用したデータの読み取りと書き込み

Hadoop と MapReduce を使用したデータの読み取りと処理。

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class FlightStats {

    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, "Flight Stats");
        job.setJarByClass(FlightStats.class);

        job.setMapperClass(FlightStatsMapper.class);
        job.setReducerClass(FlightStatsReducer.class);

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        job.waitForCompletion(true);
    }

    public static class FlightStatsMapper extends Mapper<Object, Text, Text, IntWritable> {
        @Override
        public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
            String[] line = value.toString().split(",");
            context.write(new Text(line[1]), new IntWritable(1));
        }
    }

    public static class FlightStatsReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
        @Override
        public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
            int sum = 0;
            for (IntWritable value : values) {
                sum += value.get();
            }
            context.write(key, new IntWritable(sum));
        }
    }
}

ステップ 3: Spark を使用してさらに分析する

Spark DataFrame と SQL クエリを使用してデータを分析します。

import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;

public class FlightStatsSpark {

    public static void main(String[] args) {
        SparkSession spark = SparkSession.builder().appName("Flight Stats Spark").getOrCreate();

        Dataset<Row> flights = spark.read().csv("hdfs:///path/to/flights.csv");

        flights.createOrReplaceTempView("flights");

        Dataset<Row> top10Airports = spark.sql("SELECT origin, COUNT(*) AS count FROM flights GROUP BY origin ORDER BY count DESC LIMIT 10");

        top10Airports.show(10);
    }
}

ステップ 4: Hive 対話型クエリを使用する

Hive 対話型クエリを使用してデータを分析します。

CREATE TABLE flights (origin STRING, dest STRING, carrier STRING, dep_date STRING, dep_time STRING, arr_date STRING, arr_time STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE;

LOAD DATA INPATH 'hdfs:///path/to/flights.csv' OVERWRITE INTO TABLE flights;

SELECT origin, COUNT(*) AS count FROM flights GROUP BY origin ORDER BY count DESC LIMIT 10;

結論

このチュートリアルを通じて、Java の基本と、実際のビッグ データ分析に Java を使用するスキルを習得しました。 Hadoop、Spark、Hive を理解することで、大規模なデータ セットを効率的に分析し、そこから貴重な洞察を抽出できます。

以上がJava の基礎から実践的な応用への入門: ビッグデータの実践的な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。