浅谈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 相关文章推荐
Flask解决跨域的问题示例代码
Feb 12 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
Flask实现跨域请求的处理方法
Sep 27 Python
Python利用递归实现文件的复制方法
Oct 27 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
python上传时包含boundary时的解决方法
Apr 08 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 Python
Python3.9.1中使用match方法详解
Feb 08 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
PHP个人网站架设连环讲(一)
2006/10/09 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
React简单介绍
2017/05/24 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
python命令行参数sys.argv使用示例
2014/01/28 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
python语言元素知识点详解
2019/05/15 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
美国校园市场:OCM
2017/06/08 全球购物
优秀企业获奖感言
2014/02/01 职场文书
十八大演讲稿
2014/05/22 职场文书
应届生求职信
2014/05/31 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
美丽的大脚观后感
2015/06/03 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
详解非极大值抑制算法之Python实现
2021/06/28 Python
html5调用摄像头实例代码
2021/06/28 HTML / CSS