`

spark-学习笔记--22 RDD 转换为 DataFrame--使用编程接口

 
阅读更多

RDD 转换为 DataFrame--使用编程接口

 

 

	public static void main(String[] args) {
		
		SparkConf conf  = new SparkConf().setMaster("local").setAppName("PersonDataFrame");
		JavaSparkContext sc = new JavaSparkContext(conf);
		SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);
		JavaRDD<String> textFile = sc.textFile("d://json.txt");
		JavaRDD<Person> mapPerson = textFile.map(new Function<String, Person>() {

			@Override
			public Person call(String arg0) throws Exception {
				
				Person p = JSONObject.parseObject(arg0, Person.class);
				
				return p;
			}
		});
		
		//使用编程接口      动态构建
		String schemaString = "name age";
		List<StructField> fields = new ArrayList<StructField>();
		for (String fieldName: schemaString.split(" ")) {
		  fields.add(DataTypes.createStructField(fieldName, DataTypes.StringType, true));
		}
//		fields.add(DataTypes.createStructField("name", DataTypes.StringType, true));
//		fields.add(DataTypes.createStructField("age", DataTypes.IntegerType, true));
		//构建 schema
		StructType schema = DataTypes.createStructType(fields);
		//构建  数组
		JavaRDD<Row> rowRDD = mapPerson.map(new Function<Person, Row>() {

			@Override
			public Row call(Person p) throws Exception {
				return   RowFactory.create(p.getName(),String.valueOf(p.getAge()));
			}
		});
		//使用 rowRDD 数据 和  schema  生成    DataFrame
		DataFrame peopleDataFrame = sqlContext.createDataFrame(rowRDD, schema);
		peopleDataFrame.registerTempTable("people");
		DataFrame results = sqlContext.sql("SELECT name  FROM people");
		results.show();
		
	}

 

分享到:
评论

相关推荐

    Spark-学习.rar

    "Spark学习.md"很可能是一个Markdown格式的学习笔记或教程,Markdown是一种轻量级的文本格式语言,通常用于编写技术文档。这个文件可能涵盖了Spark的基础概念,比如RDD(弹性分布式数据集)、DataFrame、DataSet,...

    spark笔记整理文档

    本篇笔记将深入探讨Spark的核心概念、架构设计以及实际应用,旨在帮助读者全面理解并掌握Spark。 1. Spark概述: Spark最初由加州大学伯克利分校AMPLab开发,其设计理念是提供一个快速、通用且可扩展的大数据处理...

    Spark学习笔记(三):Spark DataFrame

    这通常涉及先创建一个包含所需字段的类,然后将RDD转换为此类的实例,最后使用`createDataFrame`方法创建DataFrame。 DataFrame的一大优点是它支持SQL查询。一旦DataFrame被注册为临时视图,就可以使用`sql`方法...

    Spark—Python学习笔记.zip

    本学习笔记将深入探讨如何利用PySpark进行数据处理和分析,帮助你掌握这一核心技术。 首先,PySpark是Apache Spark与Python的结合,允许开发者用Python编写Spark应用程序。它提供了丰富的数据处理接口,包括RDD...

    Spark学习笔记一

    Spark 的设计理念旨在提高数据处理的速度和效率,同时简化编程模型,使其支持多种编程语言和应用场景。 Speed(快速性)是 Spark 的一大亮点。相比传统的 Hadoop MapReduce,Spark 在内存计算中可以提升执行速度达...

    spark笔记.zip

    Spark支持多种编程语言,包括Java、Scala、Python和R,方便不同背景的开发人员使用。 Hive则是另一个Apache项目,它是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL(HiveQL)...

    大数据学习笔记

    ### 大数据学习笔记知识点概览 #### 第一部分:Spark学习 ##### 第1章:Spark介绍 - **1.1 Spark简介与发展** - **背景**:随着大数据处理需求的增长,传统的Hadoop MapReduce框架虽然提供了强大的计算能力,但...

    spark全套学习资料.zip

    02_尚硅谷大数据技术之SparkCore.docx详细讲解了Spark Core的基本概念,包括RDD(弹性分布式数据集)、作业(Job)、任务(Task)和Stage的生命周期,以及如何使用Spark Shell进行交互式编程。 二、Spark SQL与数据...

    Spark学习笔记之Spark SQL的具体使用

    Spark SQL学习笔记 Spark SQL是Apache Spark平台下的一个模块,提供了一个编程抽象叫做DataFrame,并且作为分布式SQL查询引擎的作用。Spark SQL是Spark平台下的一个重要组件,主要用于处理结构化数据。 Spark SQL...

    spark-notebook-demo:演示如何使用Spark笔记本

    你可以使用 `sc` 对象来创建 RDD(弹性分布式数据集)或者 DataFrame/Dataset,这些都是 Spark 处理数据的核心抽象。 ### 数据加载与操作 Spark Notebook 支持多种数据源,例如 CSV、JSON、Parquet 或 Hive 表。...

    《Spark 快速大数据分析》学习笔记.zip

    学习笔记包含的内容可能涵盖了Spark的基本概念、核心组件、数据处理流程以及实际应用案例等多个方面。以下是对这些知识点的详细说明: 1. **Spark概述**:Spark是基于内存计算的大数据处理框架,它提供了一种快速、...

    spark-source-code-learn-note:火花学习笔记-spark source code

    《Spark源码学习笔记》是针对大数据处理框架Spark进行深入研究的资料,主要涵盖了Spark的核心设计理念、架构原理以及源码解析。本笔记旨在帮助读者理解Spark如何高效地处理大规模数据,提升数据分析和处理的能力。 ...

    大数据Spark_带有视屏_以及笔记_全面

    - **DataFrame**:DataFrame是RDD的一个高级接口,它代表了一个结构化的数据集。DataFrame提供了一个类似于SQL的API,支持复杂的查询操作。 - **Dataset**:Dataset是DataFrame的泛型版本,它支持类型安全的操作,...

    scala与spark基础

    在Spark中,Scala用于定义数据处理逻辑,通过RDD(弹性分布式数据集)或者DataFrame/Dataset API进行操作,这些API提供了丰富的转换和行动操作,如map、filter、reduce等,支持并行计算,极大地提高了处理速度。...

    scikit-learn-to-spark-ml:笔记本比较scikit-learn和Spark ML来构建机器学习管道

    2. **Spark MLlib**:介绍Spark的机器学习库,如何加载数据,创建DataFrame,使用DataFrame进行数据转换,以及如何应用MLlib中的算法(如决策树、梯度提升、朴素贝叶斯等)。还会涉及到分布式计算的概念,如RDD...

    The-Spark-Foundation-Task-1

    - **Spark编程模型**:理解RDD(弹性分布式数据集)和DataFrame的概念,以及它们之间的区别和转换方法。 - **Spark SQL**:如何创建DataFrame,注册临时表,以及使用SQL查询语句对数据进行操作。 - **DataFrame操作*...

    spark_code_basic

    "spark_learn_bf_basic.docx"可能是基础学习笔记或教程,内容可能涵盖上述理论知识的详细解释和示例代码。"spark_learn_bf_littleProject.docx"则可能包含实际的小项目,如日志分析、Word Count等,通过实践加深对...

    spark资料笔记代码

    Spark API主要包括SparkContext、RDD、DataFrame和Dataset等类,它们定义了如何创建、转换和操作数据。 五、Spark作业执行流程 1. 用户编写Spark程序,提交到集群。 2. Driver解析程序,生成DAG(有向无环图)表示...

    spark 课件.zip

    Spark SQL是Spark的一个重要扩展,它允许用户使用SQL查询DataFrame,DataFrame是Spark 2.x引入的一种更高级的数据抽象,提供了类似SQL的接口和面向列的数据模型。DataFrame可以看作是带 schema 的RDD,简化了数据...

Global site tag (gtag.js) - Google Analytics