pySpark 读取csv文件

这个读取蛮水的。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

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值