apache-spark - 如何将命名参数发送到 spark-submit
问题描述
我正在尝试执行 pyspark,我需要在我的程序中使用一些命名参数。解决这个问题的任何想法
解决方案
使用argparse
ArgParse AII 从 spark-submit 读取命名参数。下面的代码将与 spark-submit 一起使用。
spark-submit --master yarn --deploy-mode cluster --num-executors 2 --executor-memory 1G --executor-cores 2 --driver-memory 1G spark_read_write.py --inputpath <input path> --outputpath <output path> --configpath <config path>
# Include standard modules
import argparse
from pyspark.sql import SQLContext,SparkSession
from pyspark import SparkContext,SparkConf
from pyspark.sql.functions import *
from pyspark.sql.types import *
spark = SparkSession.builder.appName("ReadWriteSpark").getOrCreate()
sparkcont = SparkContext.getOrCreate(SparkConf().setAppName("ReadWriteSpark"))
logs = sparkcont.setLogLevel("ERROR")
# Initiate the parser
parser = argparse.ArgumentParser()
# Add long and short argument
parser.add_argument("--inputpath", "-inputpath", help="configuration spark path")
parser.add_argument("--outputpath", "-outputpath", help="output spark path")
parser.add_argument("--configpath", "-outputpath", help="output spark path")
# Read arguments from the command line
args = parser.parse_args()
# Check for --cofigpath
if args.cofigpath:
configpath=args.cofigpath
# Check for --inputpath
if args.inputpath:
inputpath=args.inputpath
# Check for --outputpath
if args.outputpath:
outputpath=args.outputpath
df = spark.read.format("json")
.load(inputpath)
df.write.csv(outputpath)
推荐阅读
- c# - 动态反序列化 JSON 以访问其泛型类型
- python - 为什么我在 python 中没有得到 chromedriver 异常
- python-3.x - pandas - 创建动态列
- mongodb - $in 当数组为空时不返回任何内容
- php - Laravel - MacOS - 失败。退出代码:127(找不到命令)工作目录
- python - 如何为 ML 模型正确设置种子值?
- swift - 为什么推送到 ViewController 会将其显示为弹出窗口?
- server - Magento 1.9 - 如何解决 GoDaddy 主机超时错误?
- android - 在 Android 9 中使用 Apache HTTP
- python - 使用 loc 对 Pandas DataFrame 进行选择性操作而不覆盖未选择的行