取消
顯示的結果
而不是尋找
你的意思是:

得到錯誤而拚花的數據加載到Postgres(使用spark-postgres庫)ClassNotFoundException:沒有找到數據來源:Postgres。請在http://spark.apache.org/third-party-projects.html上找到包造成的:ClassNotFoundException

資源管理器
新的貢獻者三世

嗨,夥計們,我要拚花(GCS位置)數據加載到Postgres數據庫(穀歌雲)。我們使用批量上傳數據到PG (spark-postgres庫)

https://framagit.org/interhop/library/spark-etl/-/tree/master/spark-postgres/src/main/scala/io/frama..。

前必要的——使用圖書館,我上傳jar集群

1 -https://mvnrepository.com/artifact/io.frama.parisni/spark-postgres/0.0.1

2 -https://mvnrepository.com/artifact/org.postgresql/postgresql

% scala

val數據= spark.read.format (“postgres”)

.option (“url”、“postgres jdbc:: / / IP端口/數據庫?用戶= USERNAME¤tSchema = SCHEMANAME”)

.option(“密碼”,“密碼”)

.option(“查詢”、“select * from表”)

.option(“分區”,4)

.option (“numSplits”, 5)

.option(“多行”,真的)

.load

但這是給錯誤- - - - - -

ClassNotFoundException:沒有找到數據來源:postgres。請找到包http://spark.apache.org/third-party-projects.html引起的:ClassNotFoundException: postgres.DefaultSource

P。S -因為我的數據是巨大的,我需要使用批量加載操作以來通過jdbc連接並通過光標插入批不是最佳的方法。

讓我知道如果有任何其他方法用於批量插入。

數據大小~ 40 GB的拚花

問候,

6個回答6

Kaniz
社區經理
社區經理

@explorer(客戶),我們還沒有聽到來自你自從上次反應@daniel.sahal(客戶),我檢查,看看他的建議幫助你。

否則,如果你有任何解決方案,請與社區分享,因為它可以幫助別人。

同時,請別忘了點擊“選擇最佳”按鈕時提供的信息幫助解決你的問題。

資源管理器
新的貢獻者三世

嗨@Kaniz Fatma, @Daniel薩哈-

從我身邊一些更新。

很多支安打,試驗後,psycopg2在我的例子中。

我們可以處理200 + GB數據與10節點集群(n2-highmem-4 32 GB內存4芯)和司機32 GB內存,與Runtime10.4.x-scala2.12 4核

花了接近100分鍾將整個數據加載到PG。

雖然我們需要改變鋪到csv和csv加載順序讀入PG

就像下麵的代碼片段

進口psycopg2

#創建一個連接到PostgreSQL數據庫

反對= psycopg2.connect(數據庫= " dbname”,用戶=“user-nm”,密碼=“密碼”,主機=“知識產權”,端口= " 5432 ")

#創建一個遊標對象

壞蛋= con.cursor ()

#打開CSV文件

files_to_load =dbutils.fs.ls(“dbfs: / dir /”)

而files_to_load:

file_path = files_to_load.pop .path (0)

如果file_path.endswith (. csv):

file_path = file_path.replace (“dbfs:”、“/ dbfs”)

打印(file_path)

張開f (file_path,“r”):

#使用copy_from函數來將數據裝載到PostgreSQL表

cur.copy_from (f,“pg_table_name”, 9 = "、")

#提交更改

con.commit ()

#關閉遊標和連接

con.close ()

如果你可以幫助一些問題

1 -有什麼方法我們可以調整代碼讀取鋪數據而不是. csv數據上麵的代碼(我們有數據最初拚花格式(磚三角洲的表),如果我們可以使用相同的原生格式,我們可以減少額外的處理)

2 -有什麼方法我們可以平行運行順序相反。

3 -其他技巧可以提高性能並采取更少的時間。

問候,

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map