第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

AWS Glue 中的可選作業(yè)參數(shù)?

AWS Glue 中的可選作業(yè)參數(shù)?

人到中年有點(diǎn)甜 2021-06-07 01:29:53
如何為 AWS Glue 作業(yè)實(shí)施可選參數(shù)?我創(chuàng)建了一個(gè)當(dāng)前具有字符串參數(shù)(ISO 8601 日期字符串)作為 ETL 作業(yè)中使用的輸入的作業(yè)。我想將此參數(shù)設(shè)為可選,以便作業(yè)在未提供時(shí)使用默認(rèn)值(例如,在我的情況下使用datetime.now和datetime.isoformat)。我曾嘗試使用getResolvedOptions:import sysfrom awsglue.utils import getResolvedOptionsargs = getResolvedOptions(sys.argv, ['ISO_8601_STRING'])但是,當(dāng)我沒有傳遞--ISO_8601_STRING作業(yè)參數(shù)時(shí),我看到以下錯(cuò)誤:awsglue.utils.GlueArgumentError:需要參數(shù) --ISO_8601_STRING
查看完整描述

3 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您只有一個(gè)可選字段,matsev和Yuriy解決方案就很好。


我為 python 編寫了一個(gè)更通用的包裝函數(shù),可以處理不同的極端情況(必填字段和/或帶有值的可選字段)。


import sys    

from awsglue.utils import getResolvedOptions


def get_glue_args(mandatory_fields, default_optional_args):

    """

    This is a wrapper of the glue function getResolvedOptions to take care of the following case :

    * Handling optional arguments and/or mandatory arguments

    * Optional arguments with default value

    NOTE: 

        * DO NOT USE '-' while defining args as the getResolvedOptions with replace them with '_'

        * All fields would be return as a string type with getResolvedOptions


    Arguments:

        mandatory_fields {list} -- list of mandatory fields for the job

        default_optional_args {dict} -- dict for optional fields with their default value


    Returns:

        dict -- given args with default value of optional args not filled

    """

    # The glue args are available in sys.argv with an extra '--'

    given_optional_fields_key = list(set([i[2:] for i in sys.argv]).intersection([i for i in default_optional_args]))


    args = getResolvedOptions(sys.argv,

                            mandatory_fields+given_optional_fields_key)


    # Overwrite default value if optional args are provided

    default_optional_args.update(args)


    return default_optional_args

用法 :


# Defining mandatory/optional args

mandatory_fields = ['my_mandatory_field_1','my_mandatory_field_2']

default_optional_args = {'optional_field_1':'myvalue1', 'optional_field_2':'myvalue2'}

# Retrieve args

args = get_glue_args(mandatory_fields, default_optional_args)

# Access element as dict with args[‘key’]


查看完整回答
反對(duì) 回復(fù) 2021-06-09
?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

移植Yuriy對(duì) Python的回答解決了我的問題:


if ('--{}'.format('ISO_8601_STRING') in sys.argv):

    args = getResolvedOptions(sys.argv, ['ISO_8601_STRING'])

else:

    args = {'ISO_8601_STRING': datetime.datetime.now().isoformat()}


查看完整回答
反對(duì) 回復(fù) 2021-06-09
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

有一種解決方法可以使用可選參數(shù)。這個(gè)想法是在解決它們之前檢查參數(shù)(Scala):


val argName = 'ISO_8601_STRING'

var argValue = null

if (sysArgs.contains(s"--$argName"))

   argValue = GlueArgParser.getResolvedOptions(sysArgs, Array(argName))(argName)


查看完整回答
反對(duì) 回復(fù) 2021-06-09
  • 3 回答
  • 0 關(guān)注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)