【问题标题】:How to send named params to spark-submit如何将命名参数发送到 spark-submit
【发布时间】:2020-07-22 03:50:04
【问题描述】:

我正在尝试执行 pyspark,我需要在我的程序中使用一些命名参数。解决这个问题的任何想法

【问题讨论】:

  • 您能否提供更多详细信息 - 命名 args 用于什么?在命令行中传递?如果是,只需使用任何 Python 命令行解析库
  • 这就是你要找的,我想stackoverflow.com/questions/32217160/…

标签: apache-spark pyspark apache-spark-sql


【解决方案1】:

使用 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    相关资源
    最近更新 更多