浅谈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版本的读写锁操作方法
Apr 25 Python
Python 描述符(Descriptor)入门
Nov 20 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
python中while和for的区别总结
Jun 28 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
python怎么提高计算速度
Jun 11 Python
Python 如何对文件目录操作
Jul 10 Python
Python实现自动签到脚本的示例代码
Aug 19 Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
Python虚拟环境virtualenv是如何使用的
Jun 20 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
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
ThinkPHP之getField详解
2014/06/20 PHP
session 加入redis的实现代码
2016/07/15 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
浅析python中的迭代与迭代对象
2018/10/08 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
校本教研工作方案
2014/01/14 职场文书
生产助理岗位职责
2014/06/18 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
Oracle 死锁的检测查询及处理
2021/09/25 Oracle
JavaScript流程控制(循环)
2021/12/06 Javascript
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers