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()