浅谈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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
Python3.6简单反射操作示例
Jun 14 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
python实现指定文件夹下的指定文件移动到指定位置
Sep 17 Python
python实现归并排序算法
Nov 22 Python
PyQt5 在label显示的图片中绘制矩形的方法
Jun 17 Python
python挖矿算力测试程序详解
Jul 03 Python
python中threading开启关闭线程操作
May 02 Python
python相对企业语言优势在哪
Jun 12 Python
Python基础知识学习之类的继承
May 31 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
php socket通信简单实现
2016/11/18 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
JS简单编号生成器实现方法(附demo源码下载)
2016/04/05 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
Vue中$refs的用法详解
2018/06/24 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
python 递归相关知识总结
2021/03/03 Python
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
护理专业推荐信
2013/11/07 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
仓库理货员岗位职责
2013/12/18 职场文书
人事专员的职责
2014/02/26 职场文书
诉前财产保全担保书
2014/05/20 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
MySQL创建管理LIST分区
2022/04/13 MySQL
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers