語言:Scala 2.11 Spark版本:Spark 2.3.1 DataFrame中添加新列列內(nèi)容的精確度調(diào)整將列的內(nèi)容轉(zhuǎn)化為List形式用PrinterWriter模仿csv格式儲存數(shù)據(jù) 格式化獲取表格信息 首先我們在數(shù)據(jù)集網(wǎng)站上獲取每一列所代表的信息,我們看到如下區(qū)域: 我們根據(jù)它來設(shè)計我們的seasonStats類,并用getStatsSchema函數(shù)獲取通過這一類獲得的StructType,用于格式化讀取DataFrame: 我們建立一個SparkSession并通過我們之前獲取的StructType來格式化讀取Season_Stats.csv文件的信息: 得到數(shù)據(jù)集如下: 通過withColumn函數(shù)添加新列 通過分析每一列的信息可知,這一數(shù)據(jù)集只提供了賽季總得分、總助攻、總籃板等數(shù)據(jù),而球迷最關(guān)心的一半是平均數(shù)據(jù),因此我們需要根據(jù)總數(shù)除以上場數(shù)的值來確定平均數(shù)據(jù),而withColumn實現(xiàn)了這一功能,我們先在官方文檔中找到它: Spark 2.3.2 ScalaDoc - Dataset 其中定義withColumn如下: 可知這一函數(shù)可以添加新列或替換一個同名列,第一個參數(shù)是添加列的名字,后一個參數(shù)可以規(guī)定列的數(shù)據(jù),在此我們實現(xiàn)如下代碼: 這樣我們獲得了如下的列: 可見我們已經(jīng)成功提取出我們需要的數(shù)據(jù)集,下面我們將列信息其轉(zhuǎn)化為List類,其中collect函數(shù)返回一個Array: 得到如下格式的數(shù)據(jù): 然后我們用PrintWriter將其寫入文件中: 最終我們得到了內(nèi)容如下的一個lebron_data.csv文件: 下面我們用轉(zhuǎn)而使用python,用Matplotlib庫進行可視化 scala - Append a column to Data Frame in Apache Spark 1.3 NBA Players stats since 1950 | Kaggle Spark SQL - Column of Dataframe as a List(Scala)