spark sql简单示例java
来源:互联网 发布:电动汽车推荐 知乎 编辑:程序博客网 时间:2024/06/04 18:37
运行环境
集群环境:CDH5.3.0
具体JAR版本如下:
spark版本:1.2.0-cdh5.3.0
hive版本:0.13.1-cdh5.3.0
hadoop版本:2.5.0-cdh5.3.0
spark sql的JAVA版简单示例
spark sql直接查询JSON格式的数据
spark sql的自定义函数
spark sql查询hive上面的表
import java.util.ArrayList;
import java.util.List;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.sql.api.java.DataType;
import org.apache.spark.sql.api.java.JavaSQLContext;
import org.apache.spark.sql.api.java.JavaSchemaRDD;
import org.apache.spark.sql.api.java.Row;
import org.apache.spark.sql.api.java.UDF1;
import org.apache.spark.sql.hive.api.java.JavaHiveContext;
/**
* 注意:
* 使用JavaHiveContext时
* 1:需要在classpath下面增加三个配置文件:hive-site.xml,core-site.xml,hdfs-site.xml
* 2:需要增加postgresql或mysql驱动包的依赖
* 3:需要增加hive-jdbc,hive-exec的依赖
*
*/
public class SimpleDemo {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("simpledemo").setMaster("local");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaSQLContext sqlCtx = new JavaSQLContext(sc);
JavaHiveContext hiveCtx = new JavaHiveContext(sc);
// testQueryJson(sqlCtx);
// testUDF(sc, sqlCtx);
testHive(hiveCtx);
sc.stop();
sc.close();
}
//测试spark sql直接查询JSON格式的数据
public static void testQueryJson(JavaSQLContext sqlCtx) {
JavaSchemaRDD rdd = sqlCtx.jsonFile("file:///D:/tmp/tmp/json.txt");
rdd.printSchema();
// Register the input schema RDD
rdd.registerTempTable("account");
JavaSchemaRDD accs = sqlCtx.sql("SELECT address, email,id,name FROM account ORDER BY id LIMIT 10");
List<Row> result = accs.collect();
for (Row row : result) {
System.out.println(row.getString(0) + "," + row.getString(1) + "," + row.getInt(2) + ","
+ row.getString(3));
}
JavaRDD<String> names = accs.map(new Function<Row, String>() {
@Override
public String call(Row row) throws Exception {
return row.getString(3);
}
});
System.out.println(names.collect());
}
//测试spark sql的自定义函数
public static void testUDF(JavaSparkContext sc, JavaSQLContext sqlCtx) {
// Create a account and turn it into a Schema RDD
ArrayList<AccountBean> accList = new ArrayList<AccountBean>();
accList.add(new AccountBean(1, "lily", "lily@163.com", "gz tianhe"));
JavaRDD<AccountBean> accRDD = sc.parallelize(accList);
JavaSchemaRDD rdd = sqlCtx.applySchema(accRDD, AccountBean.class);
rdd.registerTempTable("acc");
// 编写自定义函数UDF
sqlCtx.registerFunction("strlength", new UDF1<String, Integer>() {
@Override
public Integer call(String str) throws Exception {
return str.length();
}
}, DataType.IntegerType);
// 数据查询
List<Row> result = sqlCtx.sql("SELECT strlength('name'),name,address FROM acc LIMIT 10").collect();
for (Row row : result) {
System.out.println(row.getInt(0) + "," + row.getString(1) + "," + row.getString(2));
}
}
//测试spark sql查询hive上面的表
public static void testHive(JavaHiveContext hiveCtx) {
List<Row> result = hiveCtx.sql("SELECT foo,bar,name from pokes2 limit 10").collect();
for (Row row : result) {
System.out.println(row.getString(0) + "," + row.getString(1) + "," + row.getString(2));
}
}
}
0 0
- spark sql简单示例java
- spark sql简单示例
- Spark sql 简单示例
- spark简单代码示例
- Spark SQL 应用示例
- Spark SQL 编程示例
- 用java编写spark程序,简单示例及运行
- 用java编写spark程序,简单示例及运行
- Flex4 Spark 简单组件示例
- spark-shell简单使用示例
- Spark streaming 应用简单示例
- Spark SQL连接MySQL示例
- Spark SQL 简单使用
- Java + Spark SQL + Hive + Maven简单实现和异常问题
- spark搭建和java示例
- Spark 算子Java操作示例。
- Flex4 Spark组件数据驱动简单示例
- Spark本地安装和简单示例
- 设计模式(十一) 外观模式(门面模式)
- Pyhton定时生成模拟数据并存入Mysql
- C++ 可变参数的函数
- Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
- 网络请求中的cookie与set-Cookie的交互模式和作用
- spark sql简单示例java
- android xlistView 魅族手机Hold问题
- 块级作用域变量
- java自动识别用户上传的文本文件编码(未测试)
- android开发MadiaPlayer 发生IllegalStateException
- HIVE和HBASE区别
- linux学习、命令及总结
- 安装Sikuli时出现UnicodeEncodeError: 'ascii' codec can't encode characters in position 9-10: ordinal not i
- 数据结构实验之数组二:稀疏矩阵