而且小弟對於 Scala or Python不是特別熟悉(不然前面建個Eclipse + Java 做啥XD)
以下是我的範例程式碼
內容及目的跟前一篇一樣,搜尋資料庫某個Table中的某個欄位的前8筆資料
程式說明如下:
首先建置了一個名為 SparkJDBCExample的class (開發環境請參考使用Scale IDE with Eclipse 開發第一個Spark JAVA程式)
首先初始化一個 JavaSparkContext
再使用 sc 建立 sqlContext
DataFrame是 Spark中已經回傳的資料物件可以透過它來呼叫SparkAPI
完成程式碼:
import java.util.HashMap;
import java.util.Map;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.SQLContext;
public class SparkJDBCExample {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("Simple Application");
JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sqlContext = new SQLContext(sc);
Map<String, String> options = new HashMap<String, String>();
options.put("url", "jdbc:oracle:thin:user/password@localhost:1521:orcl");
options.put("dbtable", "ams_user");
DataFrame jdbcDF = sqlContext.read().format("jdbc"). options(options).load();
jdbcDF.select("USER_LOGIN_NAME").show(8);
}
}
完成後請照著先前文章的步驟
(1)Export JAR
(2)Copy to your spark environment
(3)Download ojdbc6.jar
(4)執行 Command(至所有jar檔的目錄下)
#spark-submit --driver-class-path ojdbc6 --class "SparkJDBCExample" SparkJDBCExample.jar
我的結果如下
這樣的結果是否跟之前在 spark-shell中執行的scala程式一樣呢!
沒有留言:
張貼留言