#构造case class,利用反射机制隐式转换
scala> import spark.implicits._
scala> val rdd= sc.textFile("input/textdata.txt")
scala> case class Person(id:Int,name:String)
scala> val df = rdd.map(_.split(",")).map(x=>Person(x(0).toInt,x(1))).toDF
scala> df.show
+---+--------+
| id| name|
+---+--------+
| 1|zhangsan|
| 2| lisi|
| 3| wangwu|
| 4| zhaoliu|
+---+--------+ #通过schema,Row构造dataframe
scala> import org.apache.spark.sql.types._
scala> import org.apache.spark.sql.Row
scala> val structFields = Array(StructField("id",IntegerType,true),StructField("name",StringType,true))
scala> val structType = StructType(structFields) #创建schema结构
scala> val lines= sc.textFile("input/textdata.txt")
scala> val rdd = lines.map(_.split(",")).map(x=>Row(x(0).toInt,x(1))) #创建RDD[Row]
scala> val df = spark.createDataFrame(rdd,structType) #通过RDD[Row],schema构建DataFrame
scala> df.show
+---+--------+
| id| name|
+---+--------+
| 1|zhangsan|
| 2| lisi|
| 3| wangwu|
| 4| zhaoliu|
+---+--------+

  

cat textdata.txt
1,zhangsan
2,lisi
3,wangwu
4,zhaoliu

  

Spark RDD转换为DataFrame的更多相关文章

  1. RDD转换为DataFrame【反射/编程】

    写在前面 主要是加载文件为RDD,再把RDD转换为DataFrame,进而使用DataFrame的API或Sql进行数据的方便操作 简单理解:DataFrame=RDD+Schema 贴代码 pack ...

  2. 36、将RDD转换为DataFrame

    一.概述 为什么要将RDD转换为DataFrame? 因为这样的话,我们就可以直接针对HDFS等任何可以构建为RDD的数据,使用Spark SQL进行SQL查询了.这个功能是无比强大的. 想象一下,针 ...

  3. spark RDD,DataFrame,DataSet 介绍

    弹性分布式数据集(Resilient Distributed Dataset,RDD) RDD是Spark一开始就提供的主要API,从根本上来说,一个RDD就是你的数据的一个不可变的分布式元素集合,在 ...

  4. Spark RDD、DataFrame原理及操作详解

    RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD内部可以 ...

  5. Spark RDD、DataFrame和DataSet的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   转载请标明出处:小帆的帆的专栏 RDD 优点: 编译时类型安全 编译时就能检查出类型错误 面向对象的编程风格 直接通过类 ...

  6. spark RDD、DataFrame、DataSet之间的相互转化

    这三个数据集看似经常用,但是真正归纳总结的时候,很容易说不出来 三个之间的关系与区别参考我的另一篇blog  http://www.cnblogs.com/xjh713/p/7309507.html ...

  7. spark-sql将Rdd转换为DataFrame进行操作的两种方法

    SparkConf sparkConf = new SparkConf() .setMaster("local").setAppName("ClzMap"); ...

  8. Spark提高篇——RDD/DataSet/DataFrame(二)

    该部分分为两篇,分别介绍RDD与Dataset/DataFrame: 一.RDD 二.DataSet/DataFrame 该篇主要介绍DataSet与DataFrame. 一.生成DataFrame ...

  9. spark-DataFrame之RDD和DataFrame之间的转换

    package cn.spark.study.core.mycode_dataFrame; import java.io.Serializable;import java.util.List; imp ...

随机推荐

  1. win7 home 提升 admin, pip

    以管理员权限运行cmd cmd   右击‘以管理员身份运行’ 输入net user administrator /active:yes 取消为 net user administrator /acti ...

  2. c++模板笔记

    使用vc2015进行C++ 模板的学习实验和笔记 用简单示例学习了解STL template大部头理论书 讲解各种规则和各种规则例外的解决办法 集中精力在20%的规则中的阴暗角落而不是80%实践中要注 ...

  3. Linux环境部署项目引起Out of Memory Error: PermGen Space的解决方案

    1. 背景 前几天,在搭建项目时遇到到一些问题,现在整理记录一下. Linux环境:Red Hat Enterprise Linux Server release 6.4: # 查看命令cat /et ...

  4. 《Linux就该这么学》第五天课程

    今天我很迷茫! 一下是一些命令的整合 原创地址:https://www.linuxprobe.com/chapter-04.html 下面是Linux系统中最重要的10个环境变量 变量名称 作用 HO ...

  5. 小米open-falcon监控系统接入手册

    一.新项目接入 0.官方文档: https://book.open-falcon.org/zh_0_2/usage/getting-started.html 1.联系运维人员确定可以使用监控系统: ( ...

  6. Python11/23--mysql用户管理/pymysql

    1.mysql用户管理 定义:数据安全是很重要的,不能随便分配root账户,应该按照不同开发岗位分配不同的账户和权限 mysql中将用户相关的数据放在mysql库中 user→db→tables_pr ...

  7. 前端之js中的函数

    函数 函数就是重复执行的代码片.   函数定义与执行 <script type="text/javascript">     // 函数定义     function ...

  8. Spring Cloud之踩坑01 -- Eureka高可用配置

    转载:https://blog.csdn.net/dear_Alice_moon/article/details/79373955 问题描述: 在进行Eureka高可用配置时,控制台一直出现“.... ...

  9. WPF简单的分页控件实现

    XAML代码(使用ItemsControl控件实现): <UserControl x:Class="SunCreate.Vipf.Client.UI.CityDoor.PageCont ...

  10. Hessian学习(springboot环境)

    Hessian介绍: Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议 ...