SQL中的DataFrame的两种创建方式。
来源:互联网 发布:西安行知中学张淑珍 编辑:程序博客网 时间:2024/06/15 19:47
动态创建:
package com.sparkproject.abc;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.*;import org.apache.spark.sql.types.DataTypes;import org.apache.spark.sql.types.StructType;import java.util.Arrays;import java.util.UUID;public class DataFrame1 { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("DataFrame").setMaster("local"); JavaSparkContext sc = new JavaSparkContext(conf); JavaRDD<String> javaRDD = sc.textFile(""); StructType schema = DataTypes.createStructType(Arrays.asList( DataTypes.createStructField("name",DataTypes.StringType,true), DataTypes.createStructField("id",DataTypes.IntegerType,true), DataTypes.createStructField("uuid",DataTypes.StringType,true) )); SQLContext sqlContext = new SQLContext(sc.sc());// List<Row> rows = new ArrayList<Row>(); JavaRDD<Row> rowJavaRDD = javaRDD.map(new Function<String, Row>() { @Override public Row call(String v1) throws Exception { Row row = RowFactory.create(v1.split(" ")[0],Integer.valueOf(v1.split(" ")[1]), UUID.randomUUID().toString()); return row; } }); // Row row = RowFactory.create(javaRDD); DataFrame df = sqlContext.createDataFrame(rowJavaRDD, schema); df.registerTempTable("mes"); DataFrame df2 = sqlContext.sql("select * from mes"); df2.show(); }}
反射:
package com.sparkproject.abc;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.SQLContext;import org.apache.spark.sql.api.java.UDF1;import org.apache.spark.sql.types.DataTypes;public class DataFrame2 { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("DataFrame2").setMaster("local"); JavaSparkContext sc = new JavaSparkContext(conf); SQLContext sqlContext = new SQLContext(sc); JavaRDD<String> javaRDD = sc.textFile(""); JavaRDD<DataFrame2_Class> javaRDD1 = javaRDD.map(new Function<String, DataFrame2_Class>() { @Override public DataFrame2_Class call(String v1) throws Exception { String[] vlVal = v1.split(" "); DataFrame2_Class d1 = new DataFrame2_Class(); d1.setName(vlVal[0]); d1.setAge(Integer.valueOf(vlVal[1])); return d1; } }); DataFrame df = sqlContext.createDataFrame(javaRDD1,DataFrame2_Class.class); df.registerTempTable("mess"); sqlContext.udf().register("strLength", new UDF1<String, Integer>() { @Override public Integer call(String s) throws Exception { return s.length(); } }, DataTypes.IntegerType); sqlContext.sql("select name,strLength(name) from mess").show(); df.select("name").show(); }}
package com.sparkproject.abc;public class DataFrame2_Class { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}
阅读全文
0 0
- SQL中的DataFrame的两种创建方式。
- sparkrdd转dataframe的两种方式
- RDD转换为DataFrame的两种方式及spark sql的简单实例
- Spark将RDD转换成DataFrame的两种方式
- Spark将RDD转换成DataFrame的两种方式
- 对DataFrame列名进行更改的两种方式
- Spark RDD/DataFrame map保存数据的两种方式
- spark rdd转dataframe的两种方式
- Spark 中 DataFrame的三种创建方式
- Spark SQL中的DataFrame
- 创建DataFrame有多种方式:
- [GDI+] 创建Images的两种方式
- 创建XMLHttpRequest对象的两种方式
- 动态创建option的两种方式
- mysql下创建的两种方式
- Javascript创建对象的两种方式
- 创建线程两种方式的比较
- java 创建线程 的两种方式
- php性能分析工具xhprof
- Service与BroadcastReceiver
- Intellij idea上传项目到github
- 程序员薪酬到底有多高?来看硅谷的工程师统计
- 多媒体开发
- SQL中的DataFrame的两种创建方式。
- 物理知识(1)
- python | 报错问题排查方法总结UnicodeDecodeError: 'ascii' codec ...
- 蓝桥杯练习题之闰年判断
- 接入应用宝的坑
- 委托、冒泡排序、lambda表达式、事件
- 16. 子类父类关系
- HDU 2859 Phalanx(用DP数组减少遍历的范围)
- vue项目添加Jquery