private void initConfig() {
        LOG.info("job config file path: " + jobConfigFilePath);
        Dataset<String> ds = spark.read().textFile(jobConfigFilePath);
        String jsonConfig = ds.first();
        LOG.info("rdd read json config: " + jsonConfig);
        etlJobConfig = EtlJobConfig.configFromJson(jsonConfig);
        LOG.info("etl job config: " + etlJobConfig);
    }
@Test
    public void testInitConfig(@Mocked SparkSession spark, @Injectable Dataset<String> ds) {
        new Expectations() {
            {
                SparkSession.builder().enableHiveSupport().getOrCreate();
                result = spark;
                spark.read().textFile(anyString);
                result = ds;
                ds.first();
                result = etlJobConfig.configToJson();
            }
        };

        SparkEtlJob job = Deencapsulation.newInstance(SparkEtlJob.class, "hdfs://127.0.0.1:10000/jobconfig.json");
        Deencapsulation.invoke(job, "initSparkEnvironment");
        Deencapsulation.invoke(job, "initConfig");
        EtlJobConfig parsedConfig = Deencapsulation.getField(job, "etlJobConfig");
        Assert.assertTrue(parsedConfig.tables.containsKey(tableId));
        EtlTable table = parsedConfig.tables.get(tableId);
        Assert.assertEquals(2, table.indexes.size());
        Assert.assertEquals(2, table.partitionInfo.partitions.size());
        Assert.assertEquals(false, parsedConfig.properties.strictMode);
        Assert.assertEquals("label0", parsedConfig.label);
    }