Spark Sql 总结

原创 2016年05月30日 17:35:48
1. 创建一个JavaSparkContext :
    SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);
JavaSparkContext sc = new JavaSparkContext(conf);

2. 创建rdd:
   (1) parallelize 一个Collection 
  List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
  JavaRDD<Integer> distData = sc.parallelize(data);
  
   (2) JavaRDD<String> distFile = sc.textFile("data.txt");
       读取data.txt的每一行内容
  
3.  RDD的方法。参考:http://blog.csdn.net/lxxc11/article/details/51333088


4.  创建一个SQLContext 
    JavaSparkContext sc = ...; // An existing JavaSparkContext.
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);

5.  创建DataFrame
(1) 
    DataFrame df = sqlContext.jsonFile("examples/src/main/resources/people.json");
(2)
DataFrame df = sqlContext.sql("select * from table ");

6.  将RDD转为DataFrame:
(1) 
JavaRDD<Person> people = sc.textFile("examples/src/main/resources/people.txt").map(
 new Function<String, Person>() {
public Person call(String line) throws Exception {
 String[] parts = line.split(",");


 Person person = new Person();
 person.setName(parts[0]);
 person.setAge(Integer.parseInt(parts[1].trim()));


 return person;
}
 });


DataFrame schemaPeople = sqlContext.createDataFrame(people, Person.class);


(2)
JavaRDD<String> people = sc.textFile("examples/src/main/resources/people.txt");
// The schema is encoded in a string
String schemaString = "name age";


// Generate the schema based on the string of schema
List<StructField> fields = new ArrayList<StructField>();
for (String fieldName: schemaString.split(" ")) {
 fields.add(DataType.createStructField(fieldName, DataType.StringType, true));
}
StructType schema = DataType.createStructType(fields);


// Convert records of the RDD (people) to Rows.
JavaRDD<Row> rowRDD = people.map(
 new Function<String, Row>() {
public Row call(String record) throws Exception {
 String[] fields = record.split(",");
 return Row.create(fields[0], fields[1].trim());
}
 });


// Apply the schema to the RDD.
DataFrame peopleDataFrame = sqlContext.createDataFrame(rowRDD, schema);


(3)
List<String> jsonData = Arrays.asList("{\"name\":\"Yin\",\"address\":{\"city\":\"Columbus\",\"state\":\"Ohio\"}}");
JavaRDD<String> anotherPeopleRDD = sc.parallelize(jsonData);
DataFrame anotherPeople = sqlContext.jsonRDD(anotherPeopleRDD);




   
版权声明:记录自己的学习过程,一份积累,一份收获,同时或许还能够帮助别人,何乐而不为。

spark sql 功能测试及总结 (1.4.1版本)

spark sql在项目中使用越来越多,spark sql都支持哪些功能?官网没有明确说明,只能在class SqlParserd代码中看到一些Keyword,所以准备测试下spark对常用sql的支...
  • rkjava
  • rkjava
  • 2016年06月12日 21:13
  • 4802

Spark SQL和DataFrame的学习总结

1、DataFrame  一个以命名列组织的分布式数据集。概念上相当于关系数据库中一张表或在R / Python中的data frame数据结构,但DataFrame有丰富的优化。在Spark ...
  • nysyxxg
  • nysyxxg
  • 2016年12月20日 17:00
  • 253

Spark SQL和DataFrame的学习总结

1、DataFrame 一个以命名列组织的分布式数据集。概念上相当于关系数据库中一张表或在R / Python中的data frame数据结构,但DataFrame有丰富的优化。在sp...

Spark SQL 个人总结

Spark SQL 是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame,并且作为分布式SQL查询引擎的作用什么是DataFrames?? 与R...

Spark SQL编程指南.pdf

  • 2015年02月01日 22:06
  • 1.1MB
  • 下载

Spark SQL简单操作演示(含导出表)

Spark SQL前身是Shark,由于Shark对于Hive的太多依赖制约了Spark的发展,Spark SQL由此产生。 Spark SQL只要在编译的时候引入Hive支持,就可以支持Hive表访...
  • Dr_Guo
  • Dr_Guo
  • 2016年05月15日 22:10
  • 10421

Baidu基于Spark SQL构建即席查询平台

  • 2016年08月10日 21:45
  • 1.51MB
  • 下载

[2.5]详解spark sql用户自定义函数:UDF与UDAF

参考Spark官网 王家林DT大数据梦工厂场景上一篇文章已经介绍spark sql的窗口函数,并且了解到spark sql提供了丰富的内置函数供猿友们使用,辣为何还要用户自定义函数呢?实际的业务场景...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spark Sql 总结
举报原因:
原因补充:

(最多只允许输入30个字)