日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

spark中dataframe解析_Spark-SQL

發(fā)布時(shí)間:2023/12/10 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spark中dataframe解析_Spark-SQL 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

fe

缺點(diǎn)

  • 不方便添加新的優(yōu)化策略
  • 線程安全問(wèn)題

Spark SQL支持三種語(yǔ)言

  • java
  • Scala
  • python

DataFrame

  • 大規(guī)模數(shù)據(jù)化結(jié)構(gòu)能歷、提高了運(yùn)算能力
  • 從sql到dataFrame的轉(zhuǎn)化,支持sql查詢
  • RDD是分布式的java對(duì)象的集合,對(duì)象顳部結(jié)構(gòu)不可知
  • dataframe以rdd為基礎(chǔ)的分布式數(shù)據(jù)集,提供了詳細(xì)的結(jié)構(gòu)信息

DataFrame的創(chuàng)建

SparkSession

dataframe的常用操作

df = spark.read.json("people.json") df.printSchema() 查看表的結(jié)構(gòu) df select(df['name'],df['age']+1).show()df.filter(df['age']>20).show() df.groupby("age").count().show()df.sort(df['age'] desc()).show() df.sort(df['age'].desc(),df['name'].asc()).show()

利用反射機(jī)制推斷RDD的模式

讀取Mysql數(shù)據(jù)庫(kù)中的數(shù)據(jù)

DataFrame的創(chuàng)建

from pyspark import SparkContext,SparkConf from pyspark.sql import SparkSession spark = SparkSession.builder.config(conf = SparkConf()).getOrCreate()# 分布式讀取文件 spark.read.text("people.txt") spark.read.format("text").load("people.txt") spark.read.json("people.json") spark.read.format("json").load("people.json") spark.read.parquet("people/parquet") spark.read.format("parquet").load("people.parquent")#文件保存 最后保到一個(gè)目錄 df.write.txt("people.txt") df.write.json("people.json") df.write.parquent("people.parquent")# dataFrame的一些常用操作df.printSchema() dat.select('_c1').show() df.filter(df['age']>20).show() df.groupby("age").count().show() df.sort(df["age"].desc()).show() df.sort(df["age"].desc(),df['name'].asc()).show()

RDD轉(zhuǎn)換得到dataFrame

利用反射機(jī)制推斷RDD模式

#用ROW對(duì)象去封裝一行一行的數(shù)據(jù) from pyspark.sql import ROW people = spark.sparkContext.textFile("file:///file_path").map(lambda x:x.split(",")).map(lambda x:ROW(NAME= P[0],age = int(p[1])))schemaPeople = spark.createDataFrame(people) #必須注冊(cè)為臨時(shí)表才供下面的查詢使用 schemaPeople.createOrReplaceTempView("people") personDF = spark.sql("select name,age from people where age>20") personsDRR = personsDF.rdd.map(lambda p:"Nmae"+p.name+","+age:"+str()p.age)) personsRDD.foreach(print)

總結(jié)

以上是生活随笔為你收集整理的spark中dataframe解析_Spark-SQL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。