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

如何解決列標題問題引發SQL數據幀

AnilKumar
新的貢獻者二世

我的代碼:

val name = sc.textFile (“/ FileStore /表/ employeenames.csv”)

case類x (ID:字符串,Employee_name:字符串)

val namePairRDD = name.map (_.split (", "))。地圖(x = > (x (0) (1) .trim.toString))。toDF (“ID”、“Employee_name”)

namePairRDD.createOrReplaceTempView (“namePairRDD”)

val df = sqlContext。sql (“SELECT * FROM namePairRDD”)

df.show ()

0693年f000007oohraak

我不知道如何ID和Employee_name出現在第一行。

我試著添加表,列標題,力的工作。

請幫助。

4回複4

User16857281974
貢獻者

首先你是抽樣和DataFrames API之間的跳躍。如果你開始從DF SparkSession對象API而不是你可以打這個電話

spark.read。選項(“頭”,“真正的”). csv(路徑)

然後你不需要分割文件,將從隨機數字撥號改為DF和第一列將讀頭而不是數據。

更多的信息你也可以看看~ 20其他選項可用DataFrameReader(spark.read)

AnilKumar
新的貢獻者二世

我知道我們可以以多種方式解決這個問題。我試圖解決這個問題。因此我在流。

寫失蹤的火花SQL查詢加入所有的三個表,對表進行排序,在給定的格式和顯示輸出:ID、名稱、工資,經理的名字。

產品說明:

1。表名是突出在以下查詢

火花sql

val經理= sc.textFile (“/ user / EmployeeManagers”)

val managerRDD =經理。地圖(x = > (x.split (", ") (0), x.split (", ") (1)))

val name = sc.textFile (“/ user / EmployeeNames”)

val namePairRDD =名字。地圖(x = > (x.split (", ") (0), x.split (", ") (1)))

val工資= sc.textFile (“/ user / EmployeeSalary”)

val salaryPairRDD =工資。地圖(x = > (x.split (", ") (0), x.split (", ") (1)))

<編寫代碼>

User16857281974
貢獻者

好了……讓我們試試另一個解決方案。

一種選擇是使用sc。wholeTextFiles (. .)並簡單地刪除文件的第一行。就我個人而言,我不喜歡這個,因為每個文件是被迫進入一個分區,如果它是一個非常大的文件,然後我可以有問題的內存。

第二個(第三)選項圍繞如何filter ()行# 1包含了一個頁眉和在這種情況下,需要有特殊的知識數據。

在上麵示例中,第一列值E01, E02, E03等等。如果我們可以肯定地說,“ID”的值是無效的,那麼我們可以排除任何記錄的值。你會做這個之後你將CSV文件,或者更具體地說,在調用之後xxx.map ()。缺點是,你隻是檢查一列的數據,不得你需要盡可能準確。

第三種選擇,可能更容易實現,是filter ()任何行文本是一個特定的值——這是整行匹配你的列標題。在這種情況下,過濾器接受任何行,不等於“ID, Employee_name”。你會做這後調用sc.textFile ()之前,xxx.map ()

如果你真的想要棘手,在第一行你可以閱讀你的文件來確定什麼是標題,然後在上麵的過濾器選項三使用它。

evan_matthews1
新的貢獻者二世

你好,我有相反的問題。當我運行並通過批量下載SQL查詢標準按照中華人民共和國fobasx筆記本,第一行的數據以某種方式被附加到列標題。當我使用read_csv csv文件導入到R, R認為我有13列我事實上隻有7。最後一列,應該出現在第二行第一個單元格的觀察它的頭。為什麼會這樣,我怎麼能修好它。謝謝。

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

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

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

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

Baidu
map