使用Java实战RDD与Dataframe动态转换
来源:互联网 发布:linux查看隐藏文件 编辑:程序博客网 时间:2024/05/17 08:25
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.DataFrame;import org.apache.spark.sql.Row;import org.apache.spark.sql.RowFactory;import org.apache.spark.sql.SQLContext;import org.apache.spark.sql.types.DataTypes;import org.apache.spark.sql.types.StructField;import org.apache.spark.sql.types.StructType;import org.relaxng.datatype.Datatype;/** * @author 作者 E-mail: * @version 创建时间:2016年3月16日 下午9:46:11 * 类说明 */public class RDD2DataFrame { public static void main( String[] args ) { SparkConf conf = new SparkConf().setMaster("local").setAppName(""); JavaSparkContext sc = new JavaSparkContext(conf); SQLContext sqlContext = new SQLContext(sc); JavaRDD<String> lines = sc.textFile( "D://person.txt" ); /**] * 在RDD的基础上创建类型为Row的RDD, */ JavaRDD<Row> personRDD = lines.map(new Function<String, Row>() { private static final long serialVersionUID = 1L; public Row call( String line ) throws Exception { String[] split = line.split(","); return RowFactory.create(Integer.valueOf(split[0]),split[1],Integer.valueOf(split[2])); } }); /** *1、 动态的构建DataFrame的元数据,一般而言,有多少列以及酶类的具体类型可能来源于JSON文件或者数据库 */ List<StructField> structFields = new ArrayList<StructField>(); structFields.add(DataTypes.createStructField( "id", DataTypes.IntegerType, true )); structFields.add(DataTypes.createStructField( "name", DataTypes.StringType, true )); structFields.add(DataTypes.createStructField( "age", DataTypes.IntegerType, true )); /** * 2、构建StructType用于DataFrame 元数据的描述 * */ StructType structType = DataTypes.createStructType( structFields ); /** * 3、基于MeataData以及RDD<Row>来构造DataFrame */ DataFrame personsDF = sqlContext.createDataFrame( personRDD, structType); /** * 4、注册成为临时表以供后续的SQL查询操作 */ personsDF.registerTempTable("persons"); /** * 5、进行数据的多维度分析 */ DataFrame dataResults = sqlContext.sql("select * from persons where age > 8"); /** * 6对结果进行处理,包括由DataFrame转换为RDD<Row> 以及结果的持久化 */ List<Row> collect = dataResults.javaRDD().collect(); for (Row lists : collect){ System.out.println(lists); } }}
RDD与Dataframe动态转换
0 0
- 使用Java实战RDD与Dataframe动态转换
- Java实战RDD与DataFrame动态转换操作
- RDD与DataFrame动态转换(Java)
- SPARK 使用Java 在IDE中实战RDD和DataFrame动态转换操作
- 使用Java和Scala在IDE中实战RDD和DataFrame动态转换操作
- 使用Java实战RDD和DataFrame转换操作
- 第60课:使用Java和Scala在IDE中实战RDD和DataFrame动态转换操作学习笔记
- RDD动态转换成DataFrame
- 使用Java和Scala在IDE中实战RDD和DataFrame转换操作
- 大数据IMF传奇行动绝密课程第60课:使用Java和Scala在IDE中实战RDD和DataFrame动态转换操作
- 使用java 将 Spark RDD和DataFrame转换
- [2.3]Spark DataFrame操作(二)之通过编程动态完成RDD与DataFrame的转换
- 第59课:使用Java和Scala在IDE中实战RDD和DataFrame转换操作’学习笔记
- Spark 之DataFrame与RDD 转换
- RDD和DataFrame转换(Java+Scala)
- rdd转换为DataFrame
- 大数据IMF传奇行动绝密课程第59课:使用Java和Scala在IDE中实战RDD和DataFrame转换操作
- RDD与DataFrame
- Problem-K
- Redis Essentials 读书笔记 - 第八章: Scaling Redis (Beyond a Single Instance)
- JS开发注意事项
- 我的进步是站在巨人的肩膀,java随机数详解
- Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
- 使用Java实战RDD与Dataframe动态转换
- URL中"#" "?" "&" "#!"号的作用
- Netstat 的10个基本用法
- 重建二叉树
- mysql控制台中文乱码解决
- 杭电5670
- 字符串变成数
- ScrollView的坑
- 第七届蓝桥杯—第四题||快速排序