JAVA spark創(chuàng)建DataFrame的方法
述說正傳,接下來開始說正事。
以前用Python和Scala操作Spark的時(shí)候比較多,畢竟Python和Scala代碼寫起來要簡(jiǎn)潔很多。
今天一起來看看Java版本怎么創(chuàng)建DataFrame,代碼寫起來其實(shí)差不多,畢竟公用同一套API。測(cè)試數(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的方法的詳細(xì)內(nèi)容,更多關(guān)于JAVA Spark 創(chuàng)建DataFrame的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法2. 通過Django Admin+HttpRunner1.5.6實(shí)現(xiàn)簡(jiǎn)易接口測(cè)試平臺(tái)3. Docker 部署 Prometheus的安裝詳細(xì)教程4. IntelliJ IDEA安裝插件的方法步驟5. idea重置默認(rèn)配置的方法步驟6. idea導(dǎo)入maven項(xiàng)目的方法7. php過濾器使用詳解8. idea給項(xiàng)目打war包的方法步驟9. idea打開多個(gè)窗口的操作方法10. IntelliJ IDEA調(diào)整字體大小的方法

網(wǎng)公網(wǎng)安備