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

Dataframe寫追加拚花表——分區問題

RobertWalsh
新的貢獻者二世

你好,

我試圖添加新的json文件到現有表定義在磚拚花。

使用一個數據集定義的這個命令(dataframe最初添加到臨時表):

val輸出= sql(“選擇標題。event_name to_date (from_unixtime (headers.received_timestamp)), dt, from_unixtime (headers.received_timestamp) login_datetime,頭。ip_address,頭。從usersloggedInRaw_tmp acting_user_id”)

我創建的初始表如下:

output.write.format(“鋪”).partitionBy (dt) .saveAsTable (“dev_sessions”)

這個表看起來像下麵的輸出:

0693年f000007oojyaa0

如果我嚐試將一個新的json文件附加到現有的dev_session表,使用以下:

output.write.mode(“追加”).format(“鋪”).partitionBy (dt) .saveAsTable (“dev_sessions”)

這就是我所看到的:

0693年f000007oojzaa0

數據似乎“轉變”。例如,現在acting_user_id值填充“dt”列,列添加命令中使用分區的數據。

我試過多次這個流,可以複製相同的結果。dataframe.write()中這是一個錯誤,還是我犯了一個錯誤?注意,附加表之前,我檢查磚的“輸出”dataframe通過顯示()命令沒有問題——他們預期的值列。隻有在使用寫命令添加到表中,這個問題似乎發生。

可以提供任何幫助,將真誠的感激。

11日回複11

User16301467532
新的貢獻者二世

這似乎是一個角落案件沒有人報道。如果你可以發送一個鏈接到你的筆記本和口頭授權我視圖/運行它,我可以看一看這個問題。

謝謝你的回應。然而,我已經離開了這個方法,使重修改感興趣的筆記本我沒有看到的方式來定義一個特定的路徑與saveAsTable。我想它指向一個S3目錄我的選擇。因此我現在使用“sqlContext。warehouseDirectory createExternalTable(表)”與“sqlContext.refreshTable(表)”。通過這種方法,我不得到相同的問題。當添加新數據,沒有數據的“轉移”。

User16765128951
因素二世

隻更新這個問題的最新更新。Omoshiroi說他找到了一個解決方案:

我已經離開了這個方法,使重修改感興趣的筆記本我沒有看到的方式來定義一個特定的路徑與saveAsTable。我想它指向一個S3目錄我的選擇。因此我現在使用“sqlContext。warehouseDirectory createExternalTable(表)”與“sqlContext.refreshTable(表)”。通過這種方法,我不得到相同的問題。當添加新數據,沒有數據的“轉移”。

如果有人遇到上麵的問題——讓我們知道,如果我們可以得到一個可靠的繁殖——我們想調試和解決這個問題。

CliveEvans
新的貢獻者三世

我可以複製這個很簡單。

case類的東西(第一:字符串,第二:字符串)

val df = sqlContext.createDataFrame (Seq(件事(“1”,“2”)))

df.write.format(“鋪”).mode (org.apache.spark.sql.SaveMode.Append) .partitionBy .saveAsTable(“第一”)(“示例”)df.write.format(“鋪”).mode (org.apache.spark.sql.SaveMode.Append) .partitionBy .saveAsTable(“第一”)(“示例”)

導致以下磁盤上:

-rw-r——r。211 10月30日11:37 dev dev _common_metadata drwxrwxr-x。2開發開發4096年10月30日11:37第一= drwxrwxr-x之一。2開發開發4096年10月30日11:37第一=兩個-rw-r——r。459 10月30日11:37 dev dev _metadata -rw-r——r。1開發dev 0 10月30日11:37 _SUCCES

試穿1.5.0和1.5.1

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

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

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

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

Baidu
map