赞
踩
这个读取蛮水的。but从官网来的。
- from pyspark.sql import SparkSession
- spark = SparkSession.builder \
- .enableHiveSupport().getOrCreate()
- df = spark.read.csv("/tmp/resources/zipcodes.csv")
- df.printSchema()
- ##可以得到
- root
- |-- _c0: string (nullable = true)
- |-- _c1: string (nullable = true)
- |-- _c2: string (nullable = true)
是的,读取就一句话:spark.read.csv("/tmp/resources/zipcodes.csv"),但是读取出来的效果你可能不太满意,因为没有数据的名字c0,c1,c2是个什么鬼,所以可以加上一些条件的来读取:
- df3 = spark.read.options(header='True', inferSchema='True', delimiter=',') \
- .csv("/tmp/resources/zipcodes.csv")
- ##可以得到,比如说:
- |-"学生姓名" String
- |-"学生成绩" Int
解释一下,header=true才会读取你的表头,也就是“”学生姓名“,这个最常用
delimiter是指你的csv文件使用的什么间隔符,如果这个你看不懂,说明你用的是默认的,那可以使用delimiter=',',或者完全不提delimiter。如果你封装csv的时候就设定了你的分隔符,这里改成你的。
inferSchema 根据你的数据预测你的数据类型,加了的话读取的次数是2次。这么说吧,比如学生的成绩,你不加的话,读出来的类型是string,加了就是int。
ref:https://sparkbyexamples.com/pyspark/pyspark-read-csv-file-into-dataframe/#read-csv-dataframe
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。