#_*_coding:utf-8_*_
# spark读取csv文件
#指定schema: schema = StructType([ # true代表不为null StructField("column_1", StringType(), True), # nullable=True, this field can not be null StructField("column_2", StringType(), True), StructField("column_3", StringType(), True), ] ) #方法一 df = spark.read.csv(r"hdfs://my_master:8020/user/root/data_spark.csv", encoding='gbk', header=True, inferSchema=True) # header表示数据的第一行是否为列名,inferSchema表示自动推断schema,此时未指定schema 或者: df = spark.read.csv(r"hdfs://my_master:8020/user/root/data_spark.csv", encoding='gbk', header=True, schema=schema)#使用指定的schema #方法二 df = spark.read.format("csv").option("header",True).option("encoding", "gbk").load(r"hdfs://my_master:8020/user/root/data_spark.csv") 或者: df = spark.read.format("csv").option("encoding","gbk").option("header",True).load(r"hdfs://tmaster:8020/user/root/data_spark.csv", schema=schema) # 写csv,例如追加数据格式为: df.write.mode('append').option().option().format().save() #注意:以上数据建立在csv的第一行是列名的情况下,不是列名时,应该去掉header属性
参考:
https://blog.csdn.net/zpf336/article/details/90760384
https://blog.csdn.net/wc781708249/article/details/78251701