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

操作數據,使用筆記本電腦

StevenW
新的貢獻者三世

我需要讀/查詢表、操作/修改數據並插入新的數據表。

我認為使用:

Cur_Actual =火花。sql (“Select *從表”)

currAct_Rows = Cur_Actual.rdd.collect ()

在currAct_Rows行:

do_somthing(行)

但這並不允許我更改數據,例如:

行。日期= date_add(行。目前為止,1)

然後我不明白我怎麼插入新的數據表。

安迪的建議,我們將不勝感激。

1接受解決方案

接受的解決方案

werners1
尊敬的貢獻者三世

好的。

基本上你不能遍曆dataframe因為呈現的分布式能力引發無用。

你應該做的是:

  1. 讀表與spark.read.table dataframe三角洲(表)
  2. 然後做你的轉換。更新一個列是完成了withColumn()語句。當然有很多其他的功能。
  3. 最後寫數據。這可以是附加(像),合並(插入)或覆蓋(替換所有)。

上有一些有趣的教程磚網站介紹給火花/磚。

在原帖子查看解決方案

4回複4

werners1
尊敬的貢獻者三世

很難說沒有上下文。我想表基於三角洲是一個蜂巢表或鑲花嗎?

如果是這樣的話,這可以很容易地實現withColumn語句和覆蓋的數據(或者寫一個merge語句,甚至更新為三角洲湖)。

StevenW
新的貢獻者三世

表是一個δ表。我得到了這個:

Cur_Actual.write.format(δ).mode(“追加”)。保存(“/位置/表”)

但是據我所知,一個不能遍曆DF,因此數據改變了.collect()函數集合。

這些數據需要修改和寫回,但如何?

werners1
尊敬的貢獻者三世

好的。

基本上你不能遍曆dataframe因為呈現的分布式能力引發無用。

你應該做的是:

  1. 讀表與spark.read.table dataframe三角洲(表)
  2. 然後做你的轉換。更新一個列是完成了withColumn()語句。當然有很多其他的功能。
  3. 最後寫數據。這可以是附加(像),合並(插入)或覆蓋(替換所有)。

上有一些有趣的教程磚網站介紹給火花/磚。

Manoj12421
重視貢獻二世

您可以使用withColumn()的轉換,然後可以追加寫入數據,覆蓋,合並。

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

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

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

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

Baidu
map