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

如何閱讀一個固定長度的文件在使用DataFrame API和SCALA火花

alexraj84
新的因素

我有一個固定長度的文件(一個示例如下所示),我想讀這個文件使用DataFrames API使用SCALA在火花(不是python或java)。使用DataFrames API有辦法讀文本文件,json文件等等,但不知道如果有一種方法可以讀一個固定長度的文件。我在因特網上搜索,發現一個github鏈接,但是我下載了

spark-fixedwidth-assembly-1.0.jar
為此,然而我無法找出jar。我完全失去了在這裏,需要你的建議和幫助。

這是文件

56個蘋果真的0.56 45梨FALSE1.34 34覆盆子真的2.43 34梅真的1.31 53櫻桃真的1.4 23橙色FALSE2.34 56個柿子FALSE23.2

每一列固定寬度3,5,4

請提出你的意見。

2回答2

User16789201666
因素二世

Nagendra
新的貢獻者二世

找到以下解決方案,可以使用。

讓我們考慮這是文件中的數據。

EMP ID名字的姓

1克裏斯·M

2約翰R

3 amit C

EMP ID:從1到10個字符

名字:從11到25個字符開始

姓名:從36 - 25個字符開始

羅伯特:從61年到30個字符開始。

步驟1:

文件加載到一個dataframe下麵的選項,這將創建一個數據幀隻有一列和所有行:

DFSchema = " single_col字符串"

Df = (spark.read

.option(“標題”,假)

. schema (DFSchema)

. csv (file_path)

)

步驟2:

現在的單一列必須分為3列。遵循以下步驟

選項1:手動創建列的列

Df = (Df。withColumn (“EMP_ID Df.single_col.substr (10))

Df.single_col .withColumn(“名字”。25)substr(11日)

.withColumn(“姓”,Df.single_col.substr(36歲,25)

)

選項2:創建列pro-grammatically

定義列長度的細節:

Col_Details = [(EMP_ID,(10)、(“名字”,(11,25)),(“姓”,(36歲,25)))

使用循環單獨列編程:

為col_info:

df = df.withColumn (col_info [0], DataFrameReader.value.substr (col_info [1] [0], col_info [1] [1]))

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

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

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

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

Baidu
map