浅谈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 相关文章推荐
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
使用python实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
python中reload(module)的用法示例详解
Sep 15 Python
Python面向对象之类和对象实例详解
Dec 10 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
如何分离django中的媒体、静态文件和网页
Nov 12 Python
python hash每次调用结果不同的原因
Nov 21 Python
如何获取Python简单for循环索引
Nov 21 Python
tensorflow-gpu安装的常见问题及解决方案
Jan 20 Python
利用Python+OpenCV三步去除水印
May 28 Python
Python面向对象之内置函数相关知识总结
Jun 24 Python
Python可视化学习之seaborn调色盘
Feb 24 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
通过html表格发电子邮件
2006/10/09 PHP
php上传、管理照片示例
2006/10/09 PHP
php 分页函数multi() discuz
2009/06/21 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
javascript常用的方法分享
2015/07/01 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
vue组件命名和props命名代码详解
2019/09/01 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
分享Python文本生成二维码实例
2016/01/06 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
浅析python函数式编程
2020/09/26 Python
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
教你打造完美的创业计划书
2014/01/06 职场文书
校本教研活动总结
2014/07/01 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
python中 .npy文件的读写操作实例
2022/04/14 Python
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技