1. 程式人生 > >spark dataframe 一列分隔多列,一列分隔多行(scala)

spark dataframe 一列分隔多列,一列分隔多行(scala)

關於spark dataframe ,這裡介紹三種實用中實現可能比較麻煩的操作,首先上原始資料集 mRecord:


一,合併content列,將name相同的content合併到一行,用逗號隔開:

        mRecord.createOrReplaceTempView("test");
        val Df1 = sparkSQL.sql("select name,concat_ws(',',collect_set(content)) as contents from test group by name");
        Df1.show(false);

結果如下:


二、將contents列的內容根據逗號分隔成三列:

        val Df2 = Df1.withColumn("splitcol",split(col("contents"), ",")).select(
            col("splitcol").getItem(0).as("col1"),
            col("splitcol").getItem(1).as("col2"),
            col("splitcol").getItem(2).as("col3")
        ).drop("splitcol");
        Df2.show(false);

結果如下:


三、將一中的contents還原最初狀態,及將一列的內容根據逗號分隔成多行:

        val Df3 = Df1.withColumn("arrayCol",split(col("contents"),",")).withColumn("expCol",explode(col("arrayCol")));
        Df3.show(false);

結果如下:


注意expCol列的內容

相關推薦

spark dataframe 分隔分隔scala

關於spark dataframe ,這裡介紹三種實用中實現可能比較麻煩的操作,首先上原始資料集 mRecord:一,合併content列,將name相同的content合併到一行,用逗號隔開: mRecord.createOrReplaceTempView("

Docker打包 Asp.Net Core應用在CentOS上運

ner 表示 exec 但是 服務端 名稱 pro 目前 app 轉載連接:https://www.cnblogs.com/ibeisha/archive/2017/09/09/netcoreondocker.html 本文主要介紹下運用docker虛擬技術打包Asp.n

如何在DataFrame 中優雅的增加一行

<font color=‘darkgreen’,size=4.5>    優雅的增加一行,一定要優雅! df=DataFrame(np.arange(16).reshape((4,4)),i

常用布局的實現布局、三適應布局等高適應布局等

html 絕對定位 頁面優化 cnblogs ... con bold strong ack 兩列布局:左側定寬,右側自適應方法一:利用float和負外邊距 <style> * { margin: 0; padding: 0; } .main,.si

python spark中parquet檔案寫到hdfs同時避免太的小檔案block小檔案合併

    在pyspark中,使用資料框的檔案寫出函式write.parquet經常會生成太多的小檔案,例如申請了100個block,而每個block中的結果 只有幾百K,這在機器學習演算法的結果輸出中經常出現,這是一種很大的資源浪費,那麼如何同時避免太多的小檔案(bloc

Android 電子簽名手寫簽名案實現方法並上傳網頁顯示base64

最近說專案可能會用到一個電子簽名,不需要識別的那種,只是一個單純手寫簽名,然後以base64的格式提供給前端web頁面。其實挺簡單的,自定義一個手寫view就上線了。Android 電子簽名,手寫簽名案列實現方法! 先上圖: 按鈕說明:第一個按鈕是清除手寫板,第二個是將手寫板的

60 年前群小白程式設計師扒了一個俄羅斯的開源框架--小白都能看懂的作業系統Communix的歷史(轉)

該系統程序按許可權等級分為五類,Core process(核心程序), Privilege process(特權程序), Monitor process(監控程序), Normal process(普通程序)和Vulnerable process(弱勢程序). Core process擁有至高無上的權利,控

JTree右鍵選單可拖拽+JTable可翻頁中含有按鈕隱藏

首先來看一下展示介面,JTree的特點有:節點可拖拽,根據輸入生成目錄,右鍵有選單,點選觸發事件等  JTable的特點有:含有隱藏列,可以進行翻頁,列中含有下載按鈕等 在來看一下程式碼吧,基本程式碼由Eclipse上的WindowBuilder進行拖拽式產生的,所以看起

spark小應用:wordcount按詞頻降序SCALA

val rdd = sc.textFile("hdfs://mycluster/user/bpf/sparkApp/wordcount/input") val wordcount = rdd.flatM

Java 中的次講個夠之繼承關係中的

多型是繼封裝、繼承之後,面向物件的第三大特性。 現實事物經常會體現出多種形態,如學生,學生是人的一種,則一個具體的同學張三既是學生也是人,即出現兩種形態。 Java作為面向物件的語言,同樣可以描述一個事物的多種形態。如Student類繼承了Person類,一個Student的物件便既是Student,又

CC2540是款高性價比低功耗片上系統Soc解決方案它適合藍牙低功耗應用領域

數字 醫療 保持 國內 定時 技術 定位 集成電路 性能 CC2540是一款高性價比,低功耗片上系統(Soc)解決方案,它適合藍牙低功耗應用領域,極少的外圍元器件以及強大網絡節點建立成為可能。CC2540是一款含有高速和低功耗8051內核的RF收發器。適用於低功耗系統,有超

日常如它竟是讓我們敗給庸碌感的元兇習慣一旦形成對於命運回答聲:我認命將自己長長的一生“拱手相讓”!

時間 你會 記錄 mda 亂七八糟 效率 工作 可能 HP 這世上最無奈的一句話就是:習慣了。 習慣了安靜、習慣了冷清、習慣了獨行、習慣了日子過得庸庸碌碌,習慣了生活中種種的疲於應付、習慣了亂七八糟的電腦桌面,習慣了匆匆完成的任務,習慣一旦形成,會變成附著在我們身上

HTML學習筆記 iframe引用頁面按(針對target打開方式解釋) 第九節 原創

type head -- eight frame top target span utf <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&

springMVC的controller中insert()記優惠券被次領取

校驗 syn https gmv list spring 源代碼 null tro 做活動,要發優惠券,規定一人只能領取一次(一張)。一天下來發現有一個客戶領到了4張,且是同一秒生成的,源代碼如下: 估計多個線程同時進了add方法。 想到了單例的雙重校驗,現修改代碼如

編寫程式非遞減的順序表L中刪除所有值相等的多餘元素。要求時間複雜度On空間複雜度為O1

翠花上程式碼: Status delExcrescentValue(SeqList &S){ int flag = 0,val = S.elem[0];//記錄值不等的下標 //printf("%d\n",S.elem[0]); for(int i = 1;i

pytorch綜合個弱分類器投票機制進行手寫數字分類boosting

首先,這個文章的出發點就是讓一個網路一個圖片進行預測,在直觀上不如多個網路對一個圖片進行預測之後再少數服從多數效果好。 也就是對於任何一個分類任務,訓練n個弱分類器,也就是分類準確度只比隨機猜好一點,那麼當n足夠大的時候,通過投票機制,也能提升很大的準確度:畢竟每個網路都分錯同一個資料的可能

thinkphp5關聯中間表進行型關聯

這是中間表,不要問我為什麼這麼設計,這是領導要求的 CREATE TABLE `at_relation_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `aid` int(11) NOT NULL COMMENT 'aid', `bid`

POI匯出時寫份到ftp伺服器份下載給客戶端 ftp伺服器搭建(離線安裝vsftpd)配置 poi實現百萬級資料匯出 oi實現百萬級資料匯出

導語:   昨天接到專案經理這麼一個需求,讓我在POI匯出Excel的時候寫一份到我之前搭建的ftp伺服器上。所以就有了這篇部落格首先我們來分析下之前的業務邏輯:我們建立並構造了一個workbook,然後構建了一個OutputStream輸出流,然後我們把資料寫入輸出流中就可以被客戶端下載。   現在我們

毛澤東留給我們:種蓬勃向上的力量股正氣充盈的精神

2018年的12月26日是毛澤東誕辰125週年紀念日,必須努力和堅持學習他的思想,才是一種正道。我的感悟: 你去讀毛澤東寫的文章和詩詞,無論何時何地,總是能感到一種蓬勃向上的力量,一股正氣充盈的精神。 在危險環境中表示絕望的人, 在黑暗中看不見光明的人, 只是懦夫與機會主義者。

Android 後臺每10秒鐘啟動次應用的demo次啟動永不退出

我們的廣告系統,為了防止被客戶關閉,必須要每隔一段時間啟動一次。 建立一個Service: 最關鍵的是onStartCommand 裡面返回的Service.START_STICKY,  return Service.START_STICKY package com.wb