乐趣区

pyspark读csv

pyspark 读取 csv 中的数据。
csv 有 header。header 中有两列,列名为:bd,tt。

from pyspark.sql import SparkSession
from pyspark.sql.functions import *
from pyspark.sql.types import StructType, StructField, IntegerType, StringType

def run():
    spark = SparkSession \
        .builder \
        .appName("read_csv") \
        .getOrCreate() \
 \
        # 定义模式
    schema = StructType([StructField('bd', StringType(), True),
                         StructField('tt', StringType(), True)],
                        )

    df = spark.read.csv(r"map.csv", schema=schema, encoding='utf-8', header=True)  # header 表示数据的第一行是否为列名,inferSchema 表示自动推断 schema, 此时未指定 schema
    df = df.select("bd", "tt")
    rows = df.collect()
    for row in rows:
        result[row['bd']] = row['tt'].split(";")
    analysis()


if __name__ == '__main__':
    run()

退出移动版