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)文章
SpringBoot+ENC實現(xiàn)密鑰加密的使用示例
本文主要介紹了SpringBoot+ENC實現(xiàn)密鑰加密的使用示例,主要是為了將配置信息從應(yīng)用程序代碼中分離出來,以提高安全性和可維護性,感興趣的可以了解一下2024-07-07
JPA @Query時,無法使用limit函數(shù)的問題及解決
這篇文章主要介紹了JPA @Query時,無法使用limit函數(shù)的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
解決Weblogic部署war找不到spring配置文件的問題
這篇文章主要介紹了解決Weblogic部署war找不到spring配置文件的問題,具有很好的參考價值,希望對大家有所幫助。2021-07-07
SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決
這篇文章主要介紹了SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
java實現(xiàn)用戶簽到BitMap功能實現(xiàn)demo
這篇文章主要為大家介紹了java實現(xiàn)用戶簽到BitMap功能實現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11

