午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁(yè) > 知識(shí)庫(kù) > pyspark創(chuàng)建DataFrame的幾種方法

pyspark創(chuàng)建DataFrame的幾種方法

熱門標(biāo)簽:唐山智能外呼系統(tǒng)一般多少錢 哈爾濱ai外呼系統(tǒng)定制 海南400電話如何申請(qǐng) 激戰(zhàn)2地圖標(biāo)注 白銀外呼系統(tǒng) 騰訊外呼線路 公司電話機(jī)器人 陜西金融外呼系統(tǒng) 廣告地圖標(biāo)注app

pyspark創(chuàng)建DataFrame

為了便于操作,使用pyspark時(shí)我們通常將數(shù)據(jù)轉(zhuǎn)為DataFrame的形式來(lái)完成清洗和分析動(dòng)作。

RDD和DataFrame

在上一篇pyspark基本操作有提到RDD也是spark中的操作的分布式數(shù)據(jù)對(duì)象。

這里簡(jiǎn)單看一下RDD和DataFrame的類型。

print(type(rdd))  # class 'pyspark.rdd.RDD'>
print(type(df))   # class 'pyspark.sql.dataframe.DataFrame'>

翻閱了一下源碼的定義,可以看到他們之間并沒有繼承關(guān)系。

class RDD(object):

    """
    A Resilient Distributed Dataset (RDD), the basic abstraction in Spark.
    Represents an immutable, partitioned collection of elements that can be
    operated on in parallel.
    """

class DataFrame(object):
    """A distributed collection of data grouped into named columns.

    A :class:`DataFrame` is equivalent to a relational table in Spark SQL,
    and can be created using various functions in :class:`SparkSession`::
 ...
    """

RDD是一種彈性分布式數(shù)據(jù)集,Spark中的基本抽象。表示一種不可變的、分區(qū)儲(chǔ)存的集合,可以進(jìn)行并行操作。
DataFrame是一種以列對(duì)數(shù)據(jù)進(jìn)行分組表達(dá)的分布式集合, DataFrame等同于Spark SQL中的關(guān)系表。相同點(diǎn)是,他們都是為了支持分布式計(jì)算而設(shè)計(jì)。

但是RDD只是元素的集合,但是DataFrame以列進(jìn)行分組,類似于MySQL的表或pandas中的DataFrame。

實(shí)際工作中,我們用的更多的還是DataFrame。

使用二元組創(chuàng)建DataFrame

嘗試第一種情形發(fā)現(xiàn),僅僅傳入二元組,結(jié)果是沒有列名稱的。
于是我們嘗試第二種,同時(shí)傳入二元組和列名稱。

a = [('Alice', 1)]
output = spark.createDataFrame(a).collect()
print(output)
# [Row(_1='Alice', _2=1)]

output = spark.createDataFrame(a, ['name', 'age']).collect()
print(output)
# [Row(name='Alice', age=1)]

這里collect()是按行展示數(shù)據(jù)表,也可以使用show()對(duì)數(shù)據(jù)表進(jìn)行展示。

spark.createDataFrame(a).show()
# +-----+---+
# |   _1| _2|
# +-----+---+
# |Alice|  1|
# +-----+---+

spark.createDataFrame(a, ['name', 'age']).show()
# +-----+---+
# | name|age|
# +-----+---+
# |Alice|  1|
# +-----+---+

使用鍵值對(duì)創(chuàng)建DataFrame

d = [{'name': 'Alice', 'age': 1}]
output = spark.createDataFrame(d).collect()
print(output)

# [Row(age=1, name='Alice')]

使用rdd創(chuàng)建DataFrame

a = [('Alice', 1)]
rdd = sc.parallelize(a)
output = spark.createDataFrame(rdd).collect()
print(output)
output = spark.createDataFrame(rdd, ["name", "age"]).collect()
print(output)

# [Row(_1='Alice', _2=1)]
# [Row(name='Alice', age=1)]

基于rdd和ROW創(chuàng)建DataFrame

from pyspark.sql import Row


a = [('Alice', 1)]
rdd = sc.parallelize(a)
Person = Row("name", "age")
person = rdd.map(lambda r: Person(*r))
output = spark.createDataFrame(person).collect()
print(output)

# [Row(name='Alice', age=1)]

基于rdd和StructType創(chuàng)建DataFrame

from pyspark.sql.types import *

a = [('Alice', 1)]
rdd = sc.parallelize(a)
schema = StructType(
    [
        StructField("name", StringType(), True),
        StructField("age", IntegerType(), True)
    ]
)
output = spark.createDataFrame(rdd, schema).collect()
print(output)

# [Row(name='Alice', age=1)]

基于pandas DataFrame創(chuàng)建pyspark DataFrame

df.toPandas()可以把pyspark DataFrame轉(zhuǎn)換為pandas DataFrame。

df = spark.createDataFrame(rdd, ['name', 'age'])
print(df)  # DataFrame[name: string, age: bigint]

print(type(df.toPandas()))  # class 'pandas.core.frame.DataFrame'>

# 傳入pandas DataFrame
output = spark.createDataFrame(df.toPandas()).collect()
print(output)

# [Row(name='Alice', age=1)]

創(chuàng)建有序的DataFrame

output = spark.range(1, 7, 2).collect()
print(output)
# [Row(id=1), Row(id=3), Row(id=5)]

output = spark.range(3).collect()
print(output)
# [Row(id=0), Row(id=1), Row(id=2)]

通過臨時(shí)表得到DataFrame

spark.registerDataFrameAsTable(df, "table1")
df2 = spark.table("table1")
b = df.collect() == df2.collect()
print(b)
# True

配置DataFrame和臨時(shí)表

創(chuàng)建DataFrame時(shí)指定列類型

在createDataFrame中可以指定列類型,只保留滿足數(shù)據(jù)類型的列,如果沒有滿足的列,會(huì)拋出錯(cuò)誤。

a = [('Alice', 1)]
rdd = sc.parallelize(a)

# 指定類型于預(yù)期數(shù)據(jù)對(duì)應(yīng)時(shí),正常創(chuàng)建
output = spark.createDataFrame(rdd, "a: string, b: int").collect()
print(output)  # [Row(a='Alice', b=1)]
rdd = rdd.map(lambda row: row[1])
print(rdd)  # PythonRDD[7] at RDD at PythonRDD.scala:53

# 只有int類型對(duì)應(yīng)上,過濾掉其他列。
output = spark.createDataFrame(rdd, "int").collect()
print(output)   # [Row(value=1)]

# 沒有列能對(duì)應(yīng)上,會(huì)拋出錯(cuò)誤。
output = spark.createDataFrame(rdd, "boolean").collect()
# TypeError: field value: BooleanType can not accept object 1 in type class 'int'>

注冊(cè)DataFrame為臨時(shí)表

spark.registerDataFrameAsTable(df, "table1")
spark.dropTempTable("table1")

獲取和修改配置

print(spark.getConf("spark.sql.shuffle.partitions"))  # 200
print(spark.getConf("spark.sql.shuffle.partitions", u"10"))  # 10
print(spark.setConf("spark.sql.shuffle.partitions", u"50"))  # None
print(spark.getConf("spark.sql.shuffle.partitions", u"10"))  # 50

注冊(cè)自定義函數(shù)

spark.registerFunction("stringLengthString", lambda x: len(x))
output = spark.sql("SELECT stringLengthString('test')").collect()
print(output)
# [Row(stringLengthString(test)='4')]

spark.registerFunction("stringLengthString", lambda x: len(x), IntegerType())
output = spark.sql("SELECT stringLengthString('test')").collect()
print(output)
# [Row(stringLengthString(test)=4)]

spark.udf.register("stringLengthInt", lambda x: len(x), IntegerType())
output = spark.sql("SELECT stringLengthInt('test')").collect()
print(output)
# [Row(stringLengthInt(test)=4)]

查看臨時(shí)表列表

可以查看所有臨時(shí)表名稱和對(duì)象。

spark.registerDataFrameAsTable(df, "table1")
print(spark.tableNames())  # ['table1']
print(spark.tables())  # DataFrame[database: string, tableName: string, isTemporary: boolean]
print("table1" in spark.tableNames())  # True
print("table1" in spark.tableNames("default"))  # True

spark.registerDataFrameAsTable(df, "table1")
df2 = spark.tables()
df2.filter("tableName = 'table1'").first()
print(df2)  # DataFrame[database: string, tableName: string, isTemporary: boolean]

從其他數(shù)據(jù)源創(chuàng)建DataFrame

MySQL

前提是需要下載jar包。
Mysql-connector-java.jar

from pyspark import SparkContext
from pyspark.sql import SQLContext
import pyspark.sql.functions as F


sc = SparkContext("local", appName="mysqltest")
sqlContext = SQLContext(sc)
df = sqlContext.read.format("jdbc").options(
    url="jdbc:mysql://localhost:3306/mydata?user=rootpassword=mysql"
        "useUnicode=truecharacterEncoding=utf-8useJDBCCompliantTimezoneShift=true"
        "useLegacyDatetimeCode=falseserverTimezone=UTC ", dbtable="detail_data").load()
df.show(n=5)
sc.stop()

參考

RDD和DataFrame的區(qū)別
spark官方文檔 翻譯 之pyspark.sql.SQLContext

到此這篇關(guān)于pyspark創(chuàng)建DataFrame的幾種方法的文章就介紹到這了,更多相關(guān)pyspark創(chuàng)建DataFrame 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • pyspark 讀取csv文件創(chuàng)建DataFrame的兩種方法

標(biāo)簽:黔西 鷹潭 黑龍江 四川 常德 益陽(yáng) 惠州 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pyspark創(chuàng)建DataFrame的幾種方法》,本文關(guān)鍵詞  pyspark,創(chuàng)建,DataFrame,的,幾種,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pyspark創(chuàng)建DataFrame的幾種方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于pyspark創(chuàng)建DataFrame的幾種方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    综合婷婷亚洲小说| 日本精品免费| 日韩美女主播视频| 九九九九久久久久| 中文字幕人成一区| 青青青在线播放| 中文字幕精品www乱入免费视频| 奇米在线7777在线精品| 久久久久亚洲天堂| 伊人久久大香线蕉综合75| 国产亚洲1区2区3区| 蜜臀av午夜精品| 在线观看一区二区三区四区| 精品少妇人妻av一区二区| 2019中文在线观看| 日本中文字幕一区二区视频 | 国产成人综合久久| 99热在线国产| 欧美一级中文字幕| 日本中文不卡| 欧美国产日韩中文字幕在线| 成人av手机在线观看| 日本少妇毛茸茸| 日韩视频―中文字幕| 日韩激情在线视频| 成人av网站在线| 99国产精品一区| 2023国产精品| 卡通动漫亚洲综合| 国产免费看av| 日本麻豆一区二区三区视频| 亚洲动漫第一页| 在线观看亚洲视频| 国产成人精品综合久久久| 67194成人在线观看| 久久精品日产第一区二区三区高清版 | 久久精品999| 另类小说第一页| 欧美激情性做爰免费视频| 日韩一区二区三区在线播放| 亚洲成年人在线| 天涯成人国产亚洲精品一区av| 中文字幕中文乱码欧美一区二区| 不卡大黄网站免费看| 亚洲第一色网站| 中文字幕在线天堂| 91精品啪在线观看国产| 国产精品密蕾丝袜| 日本黄色片一级片| 日韩欧美卡一卡二| 成人黄色小视频在线观看| 天天做夜夜爱爱爱| aaaa一级片| 精品午夜久久福利影院| www.com在线观看| aaa一区二区| 一区二区三区鲁丝不卡| 黑人中文字幕一区二区三区| 欧美三级黄色大片| 日韩—二三区免费观看av| 99久久精品无免国产免费| 日韩国产一区二| 国产精品女主播av| 91麻豆免费在线观看| 人妻精品无码一区二区| 精品久久在线观看| 欧美成人精品高清在线播放| 精品久久久久久久久久久久久久| 在线成人免费网站| 亚洲乱码一区二区三区| 欧美第一区第二区| 色噜噜色狠狠狠狠狠综合色一| 亚洲一区二区三区无码久久| 免费观看成人毛片| 国产曰批免费观看久久久| av影院午夜一区| 久久久蜜桃精品| 午夜精品成人在线| 亚洲欧洲国产精品| 中文字幕制服丝袜成人av| 奇米色一区二区| 国产一区二区网站| 国精产品一品二品国精品69xx| 欧美日韩久久久久| 日韩一区二区在线免费观看| 噜噜噜噜噜久久久久久91| 动漫性做爰视频| 亚洲精品欧美激情| 国产精欧美一区二区三区| 久久天天东北熟女毛茸茸| 手机看片国产精品| 亚洲熟女综合色一区二区三区| 久久女同性恋中文字幕| 亚洲亚洲精品在线观看| 国产精品91一区二区| 日韩av网站在线观看| 亚洲精品.www| 欧美一区二区在线播放| 国产欧美韩日| 中国男女全黄大片| 欧美aaaaa成人免费观看视频| 日韩精品视频在线观看网址| 精品综合久久久| 手机在线免费毛片| 一本一道久久a久久精品综合| 欧美三级网色| 在线观看岛国av| 国产精品成人99一区无码| 男人的天堂日韩| 9191国产视频| 国产77777| 国产精品区二区三区日本| 亚洲毛片欧洲毛片国产一品色| 日本精品久久久| 国产黄色片免费看| 欧美三级韩国三级日本一级| 欧美激情18p| 亚洲av成人精品一区二区三区 | 婷婷五月综合久久中文字幕| 最近日韩中文字幕| 91传媒免费视频| 亚洲国产日韩一区无码精品久久久| 黄页网站大全一区二区| 国产激情91久久精品导航| 免费观看久久久4p| 国产精品入口福利| 亚洲女同志亚洲女同女播放| 欧美一区二区三区精品电影| 久久久国产精品不卡| 婷婷激情综合五月天| 最近免费中文字幕视频2019| 亚洲国产日韩一区无码精品久久久| 国产不卡视频一区二区三区| 国产精品日韩精品| 狠狠人妻久久久久久综合| 精品国产一区二区三区四区四 | 在线看日韩欧美| 精品肉丝脚一区二区三区| 国产亚洲精品久久| 国产91色在线观看| 亚洲嫩草精品久久| 国产一区二区三区播放| 18岁网站在线观看| 亚洲国产精品综合小说图片区| 国产在线无码精品| 五月婷婷综合网| 欧美精品99久久久| 3d动漫一区二区三区| 亚洲国产免费av| 干b视频在线观看| 欧美一级一级性生活免费录像| 青青草原网站在线观看| 福利电影一区二区三区| 午夜精品一区二区三区在线视频 | 亚洲不卡视频在线| 中文在线观看免费高清| **性色生活片久久毛片| 91精品国产电影| 国产乱子伦精品无码码专区| 欧美激情亚洲自拍| 亚洲伦理一区二区三区| 国产亚洲精品久久久久动| 精品国产乱码久久久久久鸭王1| 朝桐光av在线一区二区三区| 久久色精品视频| www.av欧美| 欧美一a一片一级一片| 亚洲熟妇无码一区二区三区| 成人免费高清在线观看| 国产精品久久久对白| www.亚洲欧美| 欧美中文在线字幕| 男操女视频网站| 久久成年人免费电影| 国产无遮挡aaa片爽爽| 亚洲性线免费观看视频成熟| 我要看一级黄色录像| 精品动漫一区二区三区在线观看| 黄色网址在线视频| 欧美色网一区二区| wwwxx日本| 欧美日韩成人综合在线一区二区| 午夜免费福利网站| 在线视频一区二区三区| 一级黄色高清视频| 日本韩国精品在线| 美女黄色一级视频| 欧美一级二级三级蜜桃| 日本少妇xxxxx| 日韩av在线免播放器| 黄色录像免费观看| 亚洲欧洲中文天堂| 中文字幕一区二区三区手机版 | 国产欧美一级片| 庆余年2免费日韩剧观看大牛| 中文字幕视频二区| 国产精品久久国产精品99gif| 黄色av免费观看| 91亚洲va在线va天堂va国| 天堂网在线中文| 国产亚洲精品久久飘花| 成人午夜在线视频| 白白操在线视频| 亚洲一区中文在线| 欧美精品色视频| 欧美一区二区三区四区在线观看| 亚洲一级片在线播放| 亚洲无亚洲人成网站77777| 天天插天天操天天干| 久久久久久久国产| 天天操天天操天天| 亚洲欧洲精品在线| 亚洲伊人伊色伊影伊综合网| av黄色一级片| 日韩中文字幕在线视频| 国产av一区二区三区| yy111111少妇影院日韩夜片 | 99精品人妻国产毛片| 亚洲18私人小影院| 日韩高清国产一区在线| 三区精品视频观看| 亚洲激情五月婷婷| 亚洲av无码一区二区三区网址| 亚洲色图激情小说| 91麻豆国产在线| 久久久久久99| 亚洲婷婷综合久久一本伊一区| 婷婷五月综合激情| 男人添女荫道口图片| 亚洲国产一区二区a毛片| 伊人久久亚洲综合| 中文字幕亚洲国产| 国产99对白在线播放| 欧美日韩最好看的视频| 亚洲欧美欧美一区二区三区| 中文字幕第3页| 欧美高清性猛交| 国产另类ts人妖一区二区| 免费超爽大片黄| 日韩午夜在线影院| 涩涩视频在线观看| 欧美日韩国产三区| 色狠狠色狠狠综合| 可以在线观看av的网站| 国产91aaa| 天天综合色天天| 国产在线拍揄自揄拍| 国产日韩在线一区| 中文字幕在线一区二区三区| 欧美人与性囗牲恔配| 日本精品久久久久影院| 久久蜜桃香蕉精品一区二区三区| 无码成人精品区在线观看| 久久久免费在线观看| 97久久精品人人做人人爽| 乱码一区二区三区| 久久久久久91| 国产欧美一区二区三区在线看蜜臀| 91视频免费观看网站| 国产精品你懂得| 亚洲综合视频在线| 久久国产视频一区| 国产日本欧美在线| 亚洲精品福利资源站| 九九九久久久精品| 欧美一级片黄色| 亚洲一区二区三区xxx视频| 国产精品天美传媒| 久久在线视频精品| 欧美久久综合性欧美| 777色狠狠一区二区三区| 成人av无码一区二区三区| 91视频 -- 69xx| 欧美猛男性生活免费| 国产午夜精品美女毛片视频| 翔田千里88av中文字幕| 久久精品国产精品青草色艺| 欧美夫妻性生活| 性xxxx视频| 亚洲精品国产成人av在线| 91美女高潮出水| 欧美日韩一级片在线观看| 日本激情一区二区三区| 污污视频在线免费| 国产欧美在线播放| 欧美在线免费观看视频| 午夜视频在线播放| 在线精品一区二区三区| 99视频在线播放| 精品国产网站在线观看| 懂色av中文字幕一区二区三区| 538精品视频| 日本成人三级电影网站| 亚洲欧美日韩视频一区| 久久综合色8888| 日韩污视频在线观看| 欧美久久久久久久久久久久久久| 日韩一二三在线视频播| 综合分类小说区另类春色亚洲小说欧美 | www.av天天| 日韩国产一区久久| 最近2019中文字幕mv免费看 | 天天色棕合合合合合合合| 国产人妻精品午夜福利免费| 国产美女精品久久久| 日韩亚洲欧美在线观看| 99久久婷婷国产| 青青视频在线免费观看| 我看黄色一级片| 国产一区二区在线播放| 精品国产免费久久| 91视频国产资源| 亚洲乱码国产乱码精品| 欧美大片久久久| 国产精选一区二区| 伊人久久男人天堂| 亚洲最大成人网4388xx| 日韩成人午夜电影| 青娱乐91视频| 一级做a免费视频| 欧美裸体网站| 欧美人在线视频| 欧美系列在线观看| 91香蕉视频污在线| h片在线免费看| 在线免费看视频| wwwxxx黄色片| 国产麻豆乱码精品一区二区三区| 日韩在线视频网站| 日韩欧美黄色动漫| www..com久久爱| 性少妇videosexfreexxx片| 国产精品久久久久久久av| 国产亚洲欧美在线视频| 成人免费在线看片| 九九热r在线视频精品| 欧美日韩中文字幕一区二区| 久久久久久电影| 秋霞视频一区二区| 日本一级淫片色费放| 国产成人精品一区二区三区在线观看 | 欧美xxxx×黑人性爽| 美女av免费观看| 国产精品大全| 91精品国产色综合久久不卡98口 | 国产1区2区3区中文字幕| 成人精品视频99在线观看免费| 亚洲欧洲在线播放| 在线播放中文一区| 亚洲综合图片区| 久久久久久久久久久黄色| 欧美aa在线视频| 中文字幕在线观看欧美| 欧美激情精品久久久久久免费| 色网站在线视频| av之家在线观看| 亚洲狠狠婷婷综合久久久| 91在线|亚洲| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲精品中文字幕av| 欧洲一区在线电影| 亚洲色图.com| 久久色在线视频| 国产iv一区二区三区| 老司机久久99久久精品播放免费| 中文字幕一二区| 国产精品视频久久久久久久| 国产精品麻豆一区| 天天躁日日躁狠狠躁av麻豆男男 | 九九99久久| 国产精品成人观看视频国产奇米| www日韩欧美| 亚洲人成在线电影| 亚洲精品在线网站| 欧美精品高清视频| 色屁屁一区二区| 亚洲猫色日本管| 中文字幕一区二区三区四区不卡| av在线不卡免费看| 国产美女精品人人做人人爽| 日韩国产精品大片| 玖玖在线精品| 久久中文在线| 亚洲AV第二区国产精品| www.国产麻豆| www.黄色国产| jlzzjlzzjlzz亚洲人| 亚洲视频中文字幕在线观看| 瑟瑟视频在线免费观看| 91久久国产视频| 久久国产视频精品| 亚洲精品男人的天堂| 国产午夜视频在线播放| 久久精品视频日本| 国产成人一级片| 曰批又黄又爽免费视频| 在线观看一二三区| 一区二区视频播放| 一区二区三区免费在线视频| 国产成a人亚洲精v品无码| a天堂中文在线观看| 免费观看的毛片| 亚洲乱码国产乱码精品精软件| 色欲av永久无码精品无码蜜桃 | 亚洲天堂网av在线| 性生交大片免费全黄| 国产一级黄色av| 亚洲图片欧美在线| 亚洲免费黄色片| 国内成人精品2018免费看|