溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

hive執(zhí)行spark任務(wù)的示例分析

發(fā)布時(shí)間:2021-12-10 09:44:05 來(lái)源:億速云 閱讀:237 作者:小新 欄目:云計(jì)算

這篇文章主要為大家展示了“hive執(zhí)行spark任務(wù)的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“hive執(zhí)行spark任務(wù)的示例分析”這篇文章吧。

public static void main(String[] args) throws Exception{
        if (args.length < 1) {
            System.err.println(" Usage: JavaWordCount <file> <savepath> ");
            System.out.println(" examle: ./bin/spark-submit  --name \"WorktrendJob\"  "+ "--master spark://192.168.0.61:7077 --executor-memory 1G  "
                   + "--class et.theme.vis.job.WorktrendJob  spark-1.jar "+ "/data/china/china.txt file:///data/china ");
            System.exit(1);
        }
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
        DATE_MATH = sdf.format(new Date());
        System.out.println("--------****WorktrendJob*****----------------");
        System.out.println("-----------------------------------------------");
        System.out.println("-----------spark開(kāi)始計(jì)算------------------------");
        //job name
        SparkConf sparkConf = new SparkConf().setAppName("MyCustomerJob");
        //spark連接
        JavaSparkContext ctx = new JavaSparkContext(sparkConf);
        //創(chuàng)建hive連接
        HiveContext hiveContext = new HiveContext(ctx);
        //mysql 配置
        Properties connectionProperties = new Properties();
        connectionProperties.setProperty("user", MYSQL_USER);
        connectionProperties.setProperty("", MYSQL_PASSWORD);
        //查詢所有
        DataFrame queryall = queryAll(hiveContext,null);
        //注冊(cè)臨時(shí)表
        queryall.registerTempTable("first");
        //查詢臨時(shí)表計(jì)算1
        String sql = "";
        //查詢 計(jì)算2
        String sql1 = "";
        //將計(jì)算結(jié)果轉(zhuǎn)化DataFrame
        DataFrame sql_a = hiveContext.sql(sql);
        DataFrame sql_b = hiveContext.sql(sql1);
        // 合并2個(gè)DataFrame  相當(dāng)與 left join
        DataFrame join = sql_a.join(sql_b,sql_b.col(DATE_END).equalTo(sql_a.col(DATE_END)),"left_outer");
        //在mysql建表
        sql_a.write().mode(SaveMode.Append).jdbc(MYSQL_JDBC_URL, "test", connectionProperties);
        //關(guān)閉
         ctx.stop();
    }

public static DataFrame queryAll(HiveContext hiveContext, String arg){
        String sql = "";
        DataFrame queryAll = hiveContext.sql(sql);
        //查詢結(jié)果轉(zhuǎn)化成RDD抽象數(shù)據(jù)集
        JavaRDD<WorktrendInfo> name = queryAll.javaRDD().map(new Function<Row, WorktrendInfo>(){

            @Override
            public WorktrendInfo call(Row v1) throws Exception {
                //將RDD抽象數(shù)據(jù)集放入vo.class
                CustomerInfo customerInfo = new CustomerInfo();
                customerInfo.setCity(v1.getString(0));
                return null;//將customerInfo返回
            }

        });
        //將結(jié)果vo轉(zhuǎn)化成DataFrame ~return
        DataFrame df = hiveContext.createDataFrame(name, WorktrendInfo.class);
        return df;
        
    }

以上是“hive執(zhí)行spark任務(wù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI