JAVA spark創(chuàng)建DataFrame的方法
述說正傳,接下來開始說正事。
以前用Python和Scala操作Spark的時候比較多,畢竟Python和Scala代碼寫起來要簡潔很多。
今天一起來看看Java版本怎么創(chuàng)建DataFrame,代碼寫起來其實差不多,畢竟公用同一套API。測試數(shù)據(jù)可以參考我之前的文章。
先來總結(jié)下Spark的一般流程:
1,先創(chuàng)建Spark基礎(chǔ)變量,spark,sc
2,加載數(shù)據(jù),rdd.textFile,spark.read.csv/json等
3,數(shù)據(jù)處理,mapPartition, map,filter,reduce等一系列transformation操作
4,數(shù)據(jù)保存,saveAstextFile,或者其他DataFrame方法
祭出代碼
package dev.java; import dev.utils.Utils; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Row; import org.apache.spark.sql.RowFactory; import org.apache.spark.sql.SparkSession; import org.apache.spark.sql.types.StructType; import scala.Tuple2; import java.util.List; public class Spark1 { private static final String fileData = "seed"; private static final String fileSave = "result"; private static SparkSession spark = SparkSession.builder() .appName("Java-Spark") .master("local[*]") .config("spark.default.parallelism", 100) .config("spark.sql.shuffle.partitions", 100) .config("spark.driver.maxResultSize", "3g") .getOrCreate(); private static JavaSparkContext sc = JavaSparkContext.fromSparkContext(spark.sparkContext()); public static void main(String[] args) { Utils.delete(fileSave); // t1(); } private static void t1() { JavaRDD<Row> rdd = sc.textFile(fileData) .map(v -> { String[] parts = v.split("\t"); return RowFactory.create(parts[0], Long.parseLong(parts[1])); }) .filter(v -> v.getLong(1) >= 10000) .sortBy(v -> v.getLong(1), false, 100) .coalesce(2); Dataset<Row> df = spark.createDataFrame(rdd, StructType.fromDDL("title string, qty long")); df.write().csv(fileSave); spark.stop(); } }
以上就是JAVA操作spark創(chuàng)建DataFrame的方法的詳細內(nèi)容,更多關(guān)于JAVA Spark 創(chuàng)建DataFrame的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)之實現(xiàn)跳表
今天帶大家來學習Java數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識,文中對用Java實現(xiàn)跳表作了非常詳細的圖文解說及代碼示例,對正在學習java的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05SpringBoot解決@Component無法注入其他Bean的問題
這篇文章主要介紹了SpringBoot解決@Component無法注入其他Bean的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Spring?Boot實現(xiàn)文件上傳的兩種方式總結(jié)
應(yīng)用開發(fā)過程中,文件上傳是一個基礎(chǔ)的擴展功能,它的目的就是讓大家共享我們上傳的文件資源,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Spring?Boot實現(xiàn)文件上傳的兩種方式,需要的朋友可以參考下2023-05-05JavaWeb文件上傳下載實例講解(酷炫的文件上傳技術(shù))
在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳功能是非常常用的功能,今天來主要講講JavaWeb中的文件上傳功能的相關(guān)技術(shù)實現(xiàn),本文給大家介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧2016-11-11Java?ClassLoader虛擬類實現(xiàn)代碼熱替換的示例代碼
本文主要介紹了Java?ClassLoader虛擬類實現(xiàn)代碼熱替換的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06java application maven項目打自定義zip包實例(推薦)
下面小編就為大家?guī)硪黄猨ava application maven項目打自定義zip包實例(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05