spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能。当然主要对类SQL的支持。

在实际工作中会遇到这样的情况,主要是会进行两个数据集的筛选、合并,重新入库。

首先加载数据集,然后在提取数据集的前几行过程中,才找到limit的函数。

而合并就用到union函数,重新入库,就是registerTemple注册成表,再进行写入到HIVE中。

1、union、unionAll、unionByName,row 合并(上下拼接)

data_all = data_neg.unionByName(data_pos)

2、dataframe 样本抽样

data_all.sample(False, 0.5, 1000).count()

3、条件过滤

data_all.filter("label >= 1").count()

4、注册为临时表,再使用spark.sql 对dataframe进行操作

res = predictions.select("user_log_acct", split_udf('probability').alias('probability'))

res.registerTempTable("tmp")

spark.sql("insert overwrite table dev.dev_result_temp select user_log_acct,probability from tmp")

spark.stop()

创建和保存spark dataframe:

spark.createDataFrame(data, schema=None, samplingRatio=None),直接创建

其中data是行或元组或列表或字典的RDD、list、pandas.DataFrame。

df = spark.createDataFrame([

(1, 144.5, 5.9, 33, 'M'),

(2, 167.2, 5.4, 45, 'M'),

(3, 124.1, 5.2, 23, 'F'),

(4, 144.5, 5.9, 33, 'M'),

(5, 133.2, 5.7, 54, 'F'),

(3, 124.1, 5.2, 23, 'F'),

(5, 129.2, 5.3, 42, 'M'),

], ['id', 'weight', 'height', 'age', 'gender']) #直接创建Dataframe

df = spark.createDataFrame([{'name':'Alice','age':1},

{'name':'Polo','age':1}]) #从字典创建

schema = StructType([

StructField("id", LongType(), True),

StructField("name", StringType(), True),

StructField("age", LongType(), True),

StructField("eyeColor", StringType(), True)

])

df = spark.createDataFrame(csvRDD, schema) #指定schema。

spark.read 从文件中读数据

>>> airports = spark.read.csv(airportsFilePath, header='true', inferSchema='true', sep='\t')

>>> rdd = sc.textFile('python/test_support/sql/ages.csv') #可以用这种方法将用逗号分隔的rdd转为dataframe

>>> df2 = spark.read.csv(rdd)

>>> df = spark.read.format('json').load('python/test_support/sql/people.json')

>>> df1 = spark.read.json('python/test_support/sql/people.json')

>>> df1.dtypes

[('age', 'bigint'), ('name', 'string')]

>>> rdd = sc.textFile('python/test_support/sql/people.json')

>>> df2 = spark.read.json(rdd)

>>> df = spark.read.text('python/test_support/sql/text-test.txt')

>>> df.collect()

[Row(value='hello'), Row(value='this')]

>>> df = spark.read.text('python/test_support/sql/text-test.txt', wholetext=True)

>>> df.collect()

[Row(value='hello\nthis')]

Spark function

1)foreach(f),应用f函数,将df的每一行作为f函数的输入

例如:

def f(person):

print(person.name)

df.foreach(f)

2) apply(udf)

3) map(f),应用f函数,作用对象为rdd的每一行

参考:https://blog.csdn.net/kittyzc/article/details/82862089

python spark dataframe_pyspark dataframe 常用操作相关推荐

  1. Spark SQL概述,DataFrames,创建DataFrames的案例,DataFrame常用操作(DSL风格语法),sql风格语法

    一. Spark SQL 1. Spark SQL概述 1.1. 什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作 ...

  2. python colorlist_Python list的常用操作

    Python list列表的用法: 序列是Python中常用的数据结果,主要用于存放数据(同一个序列可以存放不同类型的数据). 1. 序列的常用操作: 1.1 索引 1.2 分片 1.3 相加 1.4 ...

  3. 【python】数字验证常用操作

    数字验证常用操作 运行参数获取 OptionParser ArgumentParser sys.argv 字典操作 update 遍历 json dump load 切片 os system path ...

  4. Python中集合的常用操作

    一.集合的介绍 1.定义:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重. 2.特性:集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无须纠结于集合中的单个值. ...

  5. pandas库--DataFrame常用操作

    文章目录 前言 一.DataFrame创建 1.基于列表创建 2.基于字典创建 二.查询 1.df直接查询 ① 查询一列 ② 查询多列 ③ 条件查询 2.query()方法 ① 条件查询 ② 带有变量 ...

  6. dataframe常用操作_Pandas模块基础及常用方法

    Pandas是基于Numpy的数据处理与分析模块.包含两个最重要的基本类型:Series和DataFrame.其中Series类似numpy的一维数组,DataFrame类似二维数组,但可存储不同类型 ...

  7. Python 之 os 模块常用操作

    我们知道,使用 Python 内置的库函数, open() 函数可以对文本文件进行读写操作,那么这是在文件层面上的操作,如果说我们想对文件夹进行增.删.改.查时,又该如何去做呢? Python 拥有强 ...

  8. 【openpyxl】python处理excel的常用操作

    文章目录 openpyxl 相关处理Excel的python库 openpyxl安装 openpyxl使用 基本概念 创建加载和保存 操作和修改 openpyxl openpyxl是一个处理Excel ...

  9. python字符串、元组常用操作

    常用字符串操作函数: #Author:CGQ name="I \tam ChenGuoQiang" print(name.capitalize())#首字母大写,其他都小写 pri ...

最新文章

  1. GitHub从入门到精通
  2. 述职答辩提问环节一般可以问些什么_2020上海市职称评审答辩注意事项
  3. Git 学习笔记 —— 常用命令
  4. 《101 Windows Phone 7 Apps》读书笔记-PASSWORDS SECRETS
  5. mysql中的自关联详解_Laravel - MySQL数据库的使用详解6(Eloquent ORM用法3:模型关联、关联查询)...
  6. Atitit各种SDM 软件开发过程SDP sdm的ddd tdd bdd设计
  7. Spark MLlib之K-Means聚类算法
  8. weka manual 3.6 翻译:1.1 引言
  9. NFS挂载及写入故障
  10. c 语言生成json 文件,如何用c语言反序列化JSON文件#
  11. -Android的发展webservice-号码归属地查询
  12. 30. 价格区间设置
  13. 23种设计模式及其应用场景
  14. 腾讯2014实习北京笔试
  15. Qt的project文件的设置相关
  16. OA软件办公用品分类设置,实现办公用品分类透明化
  17. 苹果cms对接双端android源码,苹果cms影视双端APP搭建教程
  18. python单引号和什么的作用几乎是一样的_python里的单引号和双引号的有什么作用...
  19. 扫地机器人基本设计方案
  20. 京东商品列表API接口-(item_search-按关键字搜索京东商品API接口),京东API接口

热门文章

  1. 在保护继承中基类的共有成员_C#初学者教程系列11:继承
  2. humanize时间库使用及汉化
  3. Postgresql时间处理
  4. mysql教程为什么很多都用dos_在dos操作mysql基础教程详解
  5. sklearn中的make_blobs的用法
  6. 21 | 哈希算法(上):如何防止数据库中的用户信息被脱库?
  7. python爬取网页表格数据匹配,python爬虫——数据爬取和具体解析
  8. 【离散数学中的数据结构与算法】四 加法法则与乘法法则
  9. 【OS学习笔记】二十八 保护模式八:任务切换对应的汇编代码之内核代码
  10. 求一个有限长度字符串 最长的有序可重复字符串长度