1. 程式人生 > >spark sql簡單示例java

spark sql簡單示例java

執行環境


叢集環境:CDH5.3.0


具體JAR版本如下:


spark版本:1.2.0-cdh5.3.0


hive版本:0.13.1-cdh5.3.0


hadoop版本:2.5.0-cdh5.3.0


spark sql的JAVA版簡單示例


spark sql直接查詢JSON格式的資料


spark sql的自定義函式


spark sql查詢hive上面的表


import java.util.ArrayList;
import java.util.List;


import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.sql.api.java.DataType;
import org.apache.spark.sql.api.java.JavaSQLContext;
import org.apache.spark.sql.api.java.JavaSchemaRDD;
import org.apache.spark.sql.api.java.Row;
import org.apache.spark.sql.api.java.UDF1;
import org.apache.spark.sql.hive.api.java.JavaHiveContext;




/**
 * 注意:
 * 使用JavaHiveContext時
 * 1:需要在classpath下面增加三個配置檔案:hive-site.xml,core-site.xml,hdfs-site.xml
 * 2:需要增加postgresql或mysql驅動包的依賴
 * 3:需要增加hive-jdbc,hive-exec的依賴
 *
 */
public class SimpleDemo {
    public static void main(String[] args) {
        SparkConf conf = new SparkConf().setAppName("simpledemo").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(conf);
        JavaSQLContext sqlCtx = new JavaSQLContext(sc);
        JavaHiveContext hiveCtx = new JavaHiveContext(sc);
//        testQueryJson(sqlCtx);
//        testUDF(sc, sqlCtx);
        testHive(hiveCtx);
        sc.stop();
        sc.close();
    }


    //測試spark sql直接查詢JSON格式的資料
    public static void testQueryJson(JavaSQLContext sqlCtx) {
        JavaSchemaRDD rdd = sqlCtx.jsonFile("file:///D:/tmp/tmp/json.txt");
        rdd.printSchema();


        // Register the input schema RDD
        rdd.registerTempTable("account");


        JavaSchemaRDD accs = sqlCtx.sql("SELECT address, email,id,name FROM account ORDER BY id LIMIT 10");
        List<Row> result = accs.collect();
        for (Row row : result) {
            System.out.println(row.getString(0) + "," + row.getString(1) + "," + row.getInt(2) + ","
                    + row.getString(3));
        }


        JavaRDD<String> names = accs.map(new Function<Row, String>() {
            @Override
            public String call(Row row) throws Exception {
                return row.getString(3);
            }
        });
        System.out.println(names.collect());
    }




    //測試spark sql的自定義函式
    public static void testUDF(JavaSparkContext sc, JavaSQLContext sqlCtx) {
        // Create a account and turn it into a Schema RDD
        ArrayList<AccountBean> accList = new ArrayList<AccountBean>();
        accList.add(new AccountBean(1, "lily", "
[email protected]
", "gz tianhe"));
        JavaRDD<AccountBean> accRDD = sc.parallelize(accList);


        JavaSchemaRDD rdd = sqlCtx.applySchema(accRDD, AccountBean.class);


        rdd.registerTempTable("acc");


        // 編寫自定義函式UDF
        sqlCtx.registerFunction("strlength", new UDF1<String, Integer>() {
            @Override
            public Integer call(String str) throws Exception {
                return str.length();
            }
        }, DataType.IntegerType);


        // 資料查詢
        List<Row> result = sqlCtx.sql("SELECT strlength('name'),name,address FROM acc LIMIT 10").collect();
        for (Row row : result) {
            System.out.println(row.getInt(0) + "," + row.getString(1) + "," + row.getString(2));
        }
    }


    //測試spark sql查詢hive上面的表
    public static void testHive(JavaHiveContext hiveCtx) {
        List<Row> result = hiveCtx.sql("SELECT foo,bar,name from pokes2 limit 10").collect();
        for (Row row : result) {
            System.out.println(row.getString(0) + "," + row.getString(1) + "," + row.getString(2));
        }
    }
}

相關推薦

spark sql簡單示例java

執行環境 叢集環境:CDH5.3.0 具體JAR版本如下: spark版本:1.2.0-cdh5.3.0 hive版本:0.13.1-cdh5.3.0 hadoop版本:2.5.0-cdh5.3.0 spark sql的JAVA版簡單示例 spark sql直接查詢JSON格式的資料 spark sql的自定

spark sql簡單示例

執行環境 叢集環境:CDH5.3.0 具體JAR版本如下: spark版本:1.2.0-cdh5.3.0 hive版本:0.13.1-cdh5.3.0 hadoop版本:2.5.0-cdh5.3.0 spark sql的JA

groovy執行sql簡單示例

這裡主要展示groovy為了程式碼的執行方便,竟然將依賴在指令碼中指定。 簡直是太方便了。 import groovy.sql.Sql //可以指定maven倉庫 @GrabResolver(name

Spark Sql 簡單介紹

1.什麼是Spark SQL     Spark SQL是Spark用來處理結構化資料的一個模組,它提供了一個程式設計抽象叫做DataFrame並且作為分散式SQL查詢引擎的作用。     我們已經學習了Hive,它是將Hive

java編寫spark程式,簡單示例及執行

最近因為工作需要,研究了下spark,因為scala還不熟,所以先學習了java的spark程式寫法,下面是我的簡單測試程式的程式碼,大部分函式的用法已在註釋裡面註明。 我的環境:hadoop 2.2.0                    spark-0.9.0  

JAVA入門[20]-Hibernate簡單示例

roo mysql play ger 4.3 path arc result 建數據庫 一、Hibernate簡介 在很多場景下,我們不需要使用JdbcTemplate直接操作SQL語句,這時候可以用ORM工具來節省數大量的的代碼和開發時間。ORM工具能夠把註意力從容易出

Spark的Streaming和SparkSQL簡單入門學習

gen 官方文檔 文檔 zed pairs running eas SM from 1、Spark Streaming是什麽? a、Spark Streaming是什麽?  Spark Streaming類似於Apache Storm,用於流式數據的處理。根據其官方文

使用java如何操作elasticsearch?簡單示例

exception 工具類 del ets response src res artifact ket 在線API:https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.4/transport-cli

java GUI 學生圖書管理簡單示例

- mysql資料庫建表: 1. 2. 3. 4. - 列表內容 databd.java //程式入口及登入驗證 import java.awt.*; import java.awt.event.*; import java.sql.*;

轉:HBase Java簡單示例-2013年的

Hbase採用Java實現,原生客戶端也是Java實現,其他語言需要通過thritf介面服務間接訪問Hbase的資料。 Hbase作為大資料儲存資料庫,其寫能力非常強,加上Hbase本身就脫胎於Hadoop故和Hadoop的相容性極好,非常適合於儲存半規則資料(靈活、可擴充套件性強、大資料儲存)

K3/Cloud點按鈕打開單據,列表,動態表單,簡單賬表和直接Sql報表示例

else 需要 mode 測試 bus ria 列表 輔助 scrip BOS IDE中配置了個界面,拖了動態表單界面,加了5個測試按鈕。 點擊“打開單據”維護界面, 會跳轉到一個新的主界面頁簽,【物料】新增 點擊“打開列表”,會彈出【物料】列表界面 點擊“打開

二、spark SQL互動scala操作示例

一、安裝spark spark SQL是spark的一個功能模組,所以我們事先要安裝配置spark,參考: https://www.cnblogs.com/lay2017/p/10006935.html 二、資料準備 演示操作將從一個類似json檔案裡面讀取資料作為資料來源,並初始化為dat

Java 8 常見函式式介面使用簡單示例

簡介 JDK 1.8 API包含了很多內建的函式式介面。之所以提供這些介面,是因為它們有比較多的使用場景,通過結合使用lambda表示式,我們可以很方便地利用這些介面將一些邏輯作為變數傳遞甚至組合起來實現更為複雜的邏輯,就像我們將一些普通類物件作為變數傳遞或者組合起來一樣方便。

Java 工廠方法模式的簡單示例

通過 style java 實例 對象 clas implement 屬於 決定 工廠方法模式:也叫工廠模式,屬於類創建型模式,工廠父類(接口)負責定義產品對象的公共接口,而子類工廠則負責創建具體的產品對象。 目的:是為了把產品的實例化操作延遲到子類工廠中完成,通過工廠子類

第67課:Spark SQL下采用Java和Scala實現Join的案例綜合實戰(鞏固前面學習的Spark SQL知識)

內容:     1.SparkSQL案例分析     2.SparkSQL下采用Java和Scala實現案例 一、SparkSQL下采用Java和Scala實現案例 學生成績: {"name":"Michael","score":98} {"name":"Andy"

簡單Java繼承示例

首先是整個專案的檔案組成: Person程式碼: package Father; public class Person { protected String Number; protected String Name; protected String T

Spark WordCount簡單案例(java,scala版)

Spark 是什麼?官方文件解釋:Apache Spark™ is a fast and general engine for large-scale data processing.通俗的理解:Spark是基於記憶體計算的大資料平行計算框架。Spark基於記憶體計算,提高了

兩種模型選擇和超引數調整方法及Spark MLlib使用示例(Scala/Java/Python)

機器學習除錯:模型選擇和超引數調整 模型選擇(又名超引數調整)        在機器學習中非常重要的任務就是模型選擇,或者使用資料來找到具體問題的最佳的模型和引數,這個過程也叫做除錯。除錯可以在獨立的如邏輯迴歸等估計器中完成,也可以在包含多樣演算法、特徵工程和其他步驟的管線

由一個簡單示例 引出java繼承中父子類成員變數共享問題 以及super的使用

輸出結果為 12 12 13 10 虛擬機器執行步驟: 1:虛擬機器載入測試類,提取型別資訊到方法區。 2:通過儲存在方法區的位元組碼,虛擬機器開始執行main方法,main方法入棧。 3:執行main方法的第一條指令,new B(); 這句話就是給B類例項物件分

flex+blazeds+java後臺訊息推送(簡單示例)

現在有個問題需要大家思考一下,有個已經上線了的專案,有好好幾千甚至上萬的客戶在使用了。現在專案開發商想釋出一個通知。在今天下午6點需要重新啟動伺服器,想讓線上的人在在預定的時間內都收到訊息,讓大家做好相應的準備,大家會怎麼做? 1、逐個打電話 2、在前臺弄一個定時器,每隔一