Debugging a custom job locally

This article describes the development, commissioning and maintenance requirements related to job commissioning, applicable to the project development and delivery process.

Case: Parse local JSON file data

Download demo code

git clone https://github.com/ispong/spark-job-template.git

Create JSON data file

vim /Users/ispong/Downloads/test.json
{"age": 13,"username": "张三"}
{"age": 14,"username": "李四"}

write code

vim spark-job-template/src/main/java/com/isxcode/star/job/Execute.java
package com.isxcode.zhiqingyun.job;

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

public class Execute {

    public static void main(String[] args) {

        try (SparkSession sparkSession = initSparkSession()) {
            Dataset<Row> dataset = sparkSession.read().json("/Users/ispong/Downloads/test.json");
            dataset.show();
            dataset.collectAsList().forEach(e -> {
                for (int i = 0; i < e.size(); i++) {
                    System.out.println(e.get(i));
                }
            });
        }
    }

    /**
     * 初始化本地sparkSession.
     */
    public static SparkSession initSparkSession() {

        SparkSession.Builder sparkSessionBuilder = SparkSession.builder();
        SparkConf conf = new SparkConf();
        conf.set("spark.master", "local[*]");
        return sparkSessionBuilder.config(conf).getOrCreate();
    }
}

20250117175302

20250117175230

Summary

在spark的config配置中,使用以下代码即可实现本地调试
conf.set("spark.master", "local[*]");