内容简介:说明都在代码中:
说明都在代码中:
import java.io.File; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.sql.Dataset; import org.apache.spark.sql.Row; import org.apache.spark.sql.SparkSession; /** * ClassName:SparkReadWriteHiveTest <br/> * Date: 2018年8月15日 下午1:37:26 <br/> * * @author fenglibin * @version * @see */ public class SparkReadWriteHiveTest { public static void main(String[] args) { /* * test_source_table结构如下,包括key和value两列,如下: * key, value * k1, 123 * k2, 234 */ String sql = "SELECT * FROM test_source_table_hive"; // warehouseLocation 指定管理数据库和表的默认位置 String warehouseLocation = new File("spark-warehouse").getAbsolutePath(); SparkSession sparkSession = SparkSession.builder().appName("Java Spark Hive Example").config("spark.sql.warehouse.dir", warehouseLocation).enableHiveSupport().getOrCreate(); // SQL查询的结果本身是DataFrames,支持所有正常的功能操作。 Dataset<Row> sqlDF = sparkSession.sql(sql); // 将数据转换为RDD然后处理 JavaRDD<Obj> resultRDD = sqlDF.javaRDD().map(row -> { Obj obj = new Obj(); obj.setKey(row.getAs("key")); obj.setValue(Long.parseLong(row.getAs("value")) * 1000); return obj; }); // 将RDD转换为Dataset Dataset<Row> tempResult = sparkSession.createDataFrame(resultRDD, Obj.class); // 将Dataset关联为临时视图test_desc_table_temp_hive,后续 SQL 操作中可使用 tempResult.createOrReplaceTempView("test_desc_table_temp_hive"); /* * test_desc_table_hive结构如下,包括key和value两列,如下: * key, value * k1, 123 * k2, 234 */ //将计算结果写出到hive中的目标表:test_desc_table_hive sparkSession.sql("insert into default.test_desc_table_hive select * from test_desc_table_temp_hive"); sparkSession.close(); } } class Obj { private String key; private long value; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public long getValue() { return value; } public void setValue(long value) { this.value = value; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Spring Boot中整合Sharding-JDBC读写分离示例
- 想用数据库“读写分离” 请先明白“读写分离”解决什么问题
- Java 读写锁浅析
- Golang文件读写
- ReentrantReadWriteLock 读写锁解析
- 用Python读写文件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
XML、JSON 在线转换
在线XML、JSON转换工具
XML 在线格式化
在线 XML 格式化压缩工具