1 pyspark
你需要一个pyspark的包,但是网上下载的一般都是国外路径!下载的超级超级慢!我在这放一个2.4.4版本的!不想下可以在这里拿。
下载地址:
https://files.pythonhosted.org/packages/87/21/f05c186f4ddb01d15d0ddc36ef4b7e3cedbeb6412274a41f26b55a650ee5/pyspark-2.4.4.tar.gz
链接: https://pan.baidu.com/s/1T7A3OUWVVKwpHOAKI3C8ZA 提取码: cixw
2代码
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
if __name__ == "__main__":
sc = SparkContext(appName="CSV2Parquet")
sqlContext = SQLContext(sc)
# csv中的目录结构
schema = StructType([
StructField("id", StringType(), True),
StructField("time", StringType(), True),
StructField("bigSpender", StringType(), True),
StructField("middleSpender", StringType(), True),
StructField("middleSmallSpender", StringType(), True),
StructField("smallSpender", StringType(), True)])
rdd = sc.textFile("D://aa.csv").map(parse)
df = sqlContext.createDataFrame(rdd, schema)
df.write.parquet('D://python/lxDemo/inputm-parquet')
3测试
如果直接运行的话,我猜应该会报错!
如果是这个问题的话,就可以在配置一个参数在进行测试!
这个是你spark的环境地址,如果没有的话!就下载一个,配置一下。
PYTHONPATH=D:\python\spark-3.0.1-bin-hadoop2.7\python
问题解决之后再次运行就可以看到知道文件地址下出现了一个inputm-parquet文件
4查看
虽然添加成功了,但是parquet文件的我们看不到存储的数据!
可以通过以下方法查看!
方法一:
# 差看parquet 文件信息
parquetFile = r"D:\python\lxDemo\inputs-parquet"
df = spark.read.parquet(parquetFile)
inputd = r"D:\python\lxDemo\inputm-parquet"
dd = spark.read.parquet(inputd)
dd.show(300)
方法二
parquetFile = spark.read.parquet("D:\python\lxDemo\inputm-parquet")
parquetFile.createOrReplaceTempView("parquetFile")
users = spark.sql("select * from parquetFile where unix_timestamp(time ,'yyyy-MM-dd HH:mm:ss') > unix_timestamp('2020-09-16 12:00:00','yyyy-MM-dd HH:mm:ss')")
# 查看条件下有多少条数据
print(users.count())
# 显示前300天 (默认前20条)
users.show(300)
DataFrame格式数据有一些方法可以使用,例如:
1.df.first() :显示第一条数据,Row格式
print(df.first())
解析Pyspark如何读取parquet数据解析Pyspark如何读取parquet数据
2.df.columns:列名
3.df.count():数据量,数据条数
4.df.toPandas():从spark的DataFrame格式数据转到Pandas数据结构
5.df.show():直接显示表数据;其中df.show(n) 表示只显示前n行信息
6.type(df):显数据示格式
解析Pyspark如何读取parquet数据解析Pyspark如何读取parquet数据