使用argparse 函数在命令行定义读取文件位置及输出文件位置

目标,能在命令行设置读取文件的位置、写入文件的位置及文件名。
读取和写入的位置都在hdfs中,文件类型是parquet文件。

#-*- coding:utf-8 -*-
from pyspark.sql import SparkSession
import argparse
#建立集群连接
spark = SparkSession.builder.master("yarn-client").appName("yangyu").getOrCreate()

parser = argparse.ArgumentParser()
#增加读取位置参数
parser.add_argument("read_space", help="display a name of a table")
#写入位置参数
parser.add_argument("write_space", help="display a name of a space")
args = parser.parse_args()
#读取的位置
read_space = args.read_space
#写入的位置
write_space_name = args.write_space
#使用format函数调用参数,定义读取、写入位置
read_data_path = 'hdfs://bd01:8020/{}/part*.parquet'.format(read_space)
write_data_path = 'hdfs://bd01:8020/{}'.format(write_space_name)
#读取hdfs上parquet文件
df=spark.read.format('parquet').load(read_data_path)
#=========
中间可以写一些自定义的操作函数
#=========
#写入parquet文件在hdfs指定位置
df.repartition(1).write.mode('overwrite').parquet(write_data_path)

你可能感兴趣的:(pyspark)