内容简介:说明都在代码中:
说明都在代码中:
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读写文件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C语言接口与实现
(美)David R. Hanson / 人民邮电出版社 / 2010-8 / 79.00元
可重用的软件模块是构建大规模可靠应用程序的基石,创建可重用的软件模块是每个程序员和项目经理必须掌握的技能。C语言对创建可重用的API提供的语言和功能支持非常少,虽然C程序员写应用时都会用到API和库,但却很少有人去创建和发布新的能广泛应用的API。本书介绍用一种基于接口的设计方法创建可重用的API,这一方法将接口与实现分离开来,且与语言无关。书中详细描述了24个接口及其实现,便于读者深入了解此方法......一起来看看 《C语言接口与实现》 这本书的介绍吧!