浅谈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抓取某汽车网数据解析html存入excel示例
Dec 04 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
使用Python编写简单的画图板程序的示例教程
Dec 08 Python
python表格存取的方法
Mar 07 Python
Python查看微信撤回消息代码
Jun 07 Python
浅述python中深浅拷贝原理
Sep 18 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
Pytorch的mean和std调查实例
Jan 02 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
Python学习之os模块及用法
Jun 03 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实现的四则运算表达式计算实现代码
2011/08/02 PHP
PHP中的替代语法介绍
2015/01/09 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
Django 内置权限扩展案例详解
2019/03/04 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
校园十佳歌手策划书
2014/01/22 职场文书
房产转让协议书
2014/04/11 职场文书
女生节标语
2014/06/26 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
村干部任职承诺书
2015/01/21 职场文书
企业安全生产检查制度
2015/08/06 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js
Mysql文件存储图文详解
2021/06/01 MySQL
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
详解如何用Python实现感知器算法
2021/06/18 Python