浅谈DataFrame和SparkSql取值误区


Posted in Python onJune 09, 2018

1、DataFrame返回的不是对象。

2、DataFrame查出来的数据返回的是一个dataframe数据集。

3、DataFrame只有遇见Action的算子才能执行

4、SparkSql查出来的数据返回的是一个dataframe数据集。

原始数据

scala> val parquetDF = sqlContext.read.parquet("hdfs://hadoop14:9000/yuhui/parquet/part-r-00004.gz.parquet")
df: org.apache.spark.sql.DataFrame = [timestamp: string, appkey: string, app_version: string, channel: string, lang: string, os_type: string, os_version: string, display: string, device_type: string, mac: string, network: string, nettype: string, suuid: string, register_days: int, country: string, area: string, province: string, city: string, event: string, use_interval_cat: string, use_duration_cat: string, use_interval: bigint, use_duration: bigint, os_upgrade_from: string, app_upgrade_from: string, page_name: string, event_name: string, error_type: string]

浅谈DataFrame和SparkSql取值误区

代码

package DataFrame
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}
/**
 * Created by yuhui on 2016/6/14.
 */
object DataFrameTest {
 def main(args: Array[String]) {
 DataFrameInto()
 }
 def DataFrameInto() {
 val conf = new SparkConf()
 val sc = new SparkContext(conf)
 val sqlContext = new SQLContext(sc)
 val df = sqlContext.read.parquet("hdfs://hadoop14:9000/yuhui/parquet")
 //df.map(line => printinfo(line.getString(0)))
 //df.foreach(line => printinfo(line.getString(0)+" , "+line.getString(14)+" , "+line.getString(15)))
 //df.select("timestamp","country","area").foreach(line=>printinfo(line.toString))
 df.registerTempTable("infotable")
 sqlContext.sql("SELECT timestamp , country , area from infotable").foreach(line=>printinfo(line.toString))
 }
 def printinfo(msg: String) {println("printinfo函数-->" + msg) }
}

代码解析

1、df.map(line => printinfo(line.getString(0)))

这段代码不行执行printinfo()函数,因为只有map算子,没有Action算子。

2、df.foreach(line => printinfo(line.getString(0)+" , "+line.getString(14)+" , "+line.getString(15)))

通过Spark的Action算子接收数据进行操作,执行结果如下:

浅谈DataFrame和SparkSql取值误区

3、df.select("timestamp","country","area").foreach(line=>printinfo(line.toString))

通过DataFrame的API进行操作,再通过Spark的Action算子打印出来,执行结果如下:

浅谈DataFrame和SparkSql取值误区

4、sqlContext.sql("SELECT timestamp , country , area from infotable").foreach(line=>printinfo(line.toString))

执行结果如下:

浅谈DataFrame和SparkSql取值误区

以上这篇浅谈DataFrame和SparkSql取值误区就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的with...as用法介绍
May 28 Python
Python中的日期时间处理详解
Nov 17 Python
详解Python中for循环是如何工作的
Jun 30 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
python实现画一颗树和一片森林
Jun 25 Python
django项目搭建与Session使用详解
Oct 10 Python
python 将列表中的字符串连接成一个长路径的方法
Oct 23 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python基于property()函数定义属性
Jan 22 Python
使用keras根据层名称来初始化网络
May 21 Python
python 爬虫如何实现百度翻译
Nov 16 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 #Python
pandas Dataframe行列读取的实例
Jun 08 #Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 #Python
python中for用来遍历range函数的方法
Jun 08 #Python
删除python pandas.DataFrame 的多重index实例
Jun 08 #Python
python爬虫正则表达式之处理换行符
Jun 08 #Python
pandas 数据实现行间计算的方法
Jun 08 #Python
You might like
用PHP读取和编写XML DOM的实现代码
2011/02/03 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php内存缓存实现方法
2015/01/24 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
Laravel框架基于ajax实现二级联动功能示例
2019/01/17 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
python中abs&map&reduce简介
2018/02/20 Python
python执行精确的小数计算方法
2019/01/21 Python
python判断自身是否正在运行的方法
2019/08/08 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
详解python中各种文件打开模式
2020/01/19 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
活动总结书
2014/05/08 职场文书
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang