浅谈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利用hook技术破解https的实例代码
Mar 25 Python
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
python的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
python super的使用方法及实例详解
Sep 25 Python
python机器学习实现决策树
Nov 11 Python
Python 支持向量机分类器的实现
Jan 15 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
python如何调用百度识图api
Sep 29 Python
基于PyTorch中view的用法说明
Mar 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 CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
2013/06/06 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
Python中的闭包总结
2014/09/18 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
在python shell中运行python文件的实现
2019/12/21 Python
python 日志 logging模块详细解析
2020/03/31 Python
python怎么删除缓存文件
2020/07/19 Python
Python接口自动化测试的实现
2020/08/28 Python
python 下载文件的多种方法汇总
2020/11/17 Python
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
中班上学期幼儿评语
2014/04/30 职场文书
青春演讲稿范文
2014/05/08 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
年终考核实施方案
2014/05/26 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
文化苦旅读书笔记
2015/06/29 职场文书