1. 程式人生 > >Spark讀取資料庫(Mysql)的四種方式講解

Spark讀取資料庫(Mysql)的四種方式講解

 目前Spark支援四種方式從資料庫中讀取資料,這裡以Mysql為例進行介紹。

一、不指定查詢條件

  這個方式連結MySql的函式原型是:

def jdbc(url: String, table: String, properties: Properties): DataFrame

  我們只需要提供Driver的url,需要查詢的表名,以及連線表相關屬性properties。下面是具體例子:

val prop = new
Properties() val df = sqlContext.read.jdbc(url, "iteblog", prop ) println(df.count()) println(df.rdd.partitions.size)

  我們執行上面的程式,可以看到df.rdd.partitions.size輸出結果是1,這個結果的含義是iteblog表的所有資料都是由RDD的一個分割槽處理的,所以說,如果你這個表很大,很可能會出現OOM

WARN TaskSetManager
: Lost task 0.0 in stage 1.0 (TID 14, spark047219): java.lang.OutOfMemoryError: GC overhead limit exceeded at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3380)

這種方式在資料量大的時候不建議使用。


如果想及時瞭解Spark、Hadoop或者Hbase相關的文章,歡迎關注微信公共帳號:iteblog_hadoop

二、指定資料庫欄位的範圍

  這種方式就是通過指定資料庫中某個欄位的範圍,但是遺憾的是,這個欄位必須是數字,來看看這個函式的函式原型:

def jdbc( url: String, table: String, columnName: String, lowerBound: Long, upperBound: Long, numPartitions: Int, connectionProperties: Properties):

相關推薦

Spark讀取資料庫(Mysql)的方式講解

 目前Spark支援四種方式從資料庫中讀取資料,這裡以Mysql為例進行介紹。 一、不指定查詢條件   這個方式連結MySql的函式原型是: def jdbc(url: String, table:

Spark支援方式資料庫讀取資料

目前Spark支援四種方式從資料庫中讀取資料,這裡以Mysql為例進行介紹。 一、不指定查詢條件   這個方式連結MySql的函式原型是: def jdbc(url: String, table: String, properties: Properties):

java讀取配置文件常用的方式

ng- wrap play 獲取值 position trac resource 基於 tom 配置文件 放置在src下面 obj.propertiesclassName=com.store.order.dao.impl.OrderDaoImpl方式一@Test p

mysql修改密碼的方式

table user 修改 sql str upd root密碼 權限表 bin 方法1: 用SET PASSWORD命令 首先登錄MySQL。 格式:mysql> set password for [email protected]/* */ = pas

JavaWeb讀取資源文件的方式

資源 加載 java pro ets nbsp fault 及其 ces 1. ServletContext 1. 調用getResourcesAsStream方法獲取輸入流, 相對於webroot, 不用加/2. 讀取任何類型的文件3. *只能在web環境下使用 Inp

flask讀取資料庫(mysql)並展示表格(講解獲取表頭的方法)【附上flask好看點的helloworld】

簡述 為了網頁的好看,最好還是用bootstrap 文章目錄 簡述 好看點的helloworld 連結資料庫 結合在html上和flask上 html程式碼修改 好看點的h

資料庫連線方式

內連線 內連線  ---拼接查詢結果 內部有聯絡,使用內連線 格式: [inner] join ----inner可省 結果: 從左表中取出每一條記錄,去右表中與所有的記錄進行匹配; 匹配必須是某個條件是左表中與右表中相同,才會保留結果,否則不保留; 基本語法: 左表

登入mysql資料庫的幾方式

登入mysql資料庫的幾種方式 第1種 (通過mysql自帶的客戶端,MySQL 5.5 Command Line Client) 不推薦這種方式 注意:這種登入方式,只適用於root使用者,不夠靈活!(只適合於root使用者登入,只限於root使用者,以後我們可

MySQL方式建立資料庫

資料庫是有很多個表組成,那麼如何建立資料庫呢,MySQL 提供三種方式建立資料庫。 第一種,使用 create 命令建立資料庫 [[email protected]]# mysql -u root -p    Enter password:******  # 登

資料庫隔離級別的實現方式

之前看了一段時間的資料庫。對於資料庫的四種隔離級別一直有疑惑,很多人對於四種隔離級別所面對的情況說法也不一致,下面我說一下我的理解。說道資料庫的四種隔離級別,就要先說資料庫的ACID,原子性,一致性,隔離性和永續性,這四種隔離級別就是針對資料庫的隔離性,下面針對資料庫的隔離性

(轉)java向MySQL插入當前時間的方式和java時間日期格式化的幾方法(案例說明)

轉載地址  https://www.cnblogs.com/zhaotiancheng/p/6413067.html 資料庫操作經常會用到時間,例如start_time,end_time,(在資料庫中是datetime型別,) 對應關係 mys

linux 中mysql 啟動方式

mysql的四種啟動方式: 1、mysqld 啟動mysql伺服器:./mysqld --defaults-file=/etc/my.cnf --user=root 客戶端連線: mysql --defaults-file=/etc/my.cnf or mys

MYSQL 外來鍵方式

一,如何建立外來鍵語法:alter table 表名 add constraint FK_ID foreign key(你的外來鍵欄位名) REFERENCES 外表表名(對應的表的主鍵欄位名);例: alter table tb_table add constraint F

Linux環境安裝Mysql資料庫的三方式之一:二進位制包方式安裝

本文是在CentOS7系統平臺下安裝Mysql5.6.26版本資料庫的操作說明,如有錯誤,請指正。 系統平臺:CentOS-7-x86_64   資料庫版本:mysql-5.6.26 本次演示的Mysql安裝包版本:mysql-5.6.26-linux-glibc2

詳解Ubuntu Server下啟動/停止/重啟MySQL資料庫的三方式(ubuntu 16.04)

啟動mysql: 方式一:sudo /etc/init.d/mysql start 方式二:sudo service mysql start 停止mysql: 方式一:sudo /etc/init.d/mysql stop 方式二:sudo service mysq

Python操作MySQL資料庫的兩方式pymysql和pandas

目錄 第一種 使用pymysql 程式碼如下: import pymysql #開啟資料庫連線 db=pymysql.connect(host='1.1.1.1',port=3306,user='root',passwd='123123',db='te

java讀取XML檔案的方式及比較

1)DOM(JAXP Crimson解析器)          DOM是用與平臺和語言無關的方式表示XML文件的官方W3C標準。DOM是以層次結構組織的節點或資訊片斷的集合。這個層次結構允許開發人員在樹中尋找特定資訊。分析該結構通常需要載入整個文件和構造層次結構,然後才

java中連線MySQL資料庫的幾方式

1.1概念 DBCP(DataBase Connection Pool)資料庫連線池,是java資料庫連線池的一種,由Apache開發,通過資料庫連線池,可以讓程式自動管理資料庫連線的釋放和斷開。 1.2程式碼示例 所需jar包:commons-dbcp2-2.2.1.j

Oracle資料庫啟動方式

   1、startup nomount   非安裝啟動:這種方式啟動下可執行:重建控制檔案、重建資料庫、啟動instance,即啟動SGA和後臺程序,這種啟動只需要init.ora檔案。   2、startup mount dbname   安裝啟動:這種方式啟動下可執行:

angular創建自定義指令的方式

htm mil 成功 評論 utf-8 例如 angularjs size 限制   angular除了內置的部分指令,還可以通過.directive來自定義指令。要調用自定義指令,HTML 元素上需要添加自定義指令名。使用駝峰法來命名一個指令:nsHeader,在調用時使