pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)
生活随笔
收集整理的這篇文章主要介紹了
pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
pig 腳本運行不需要后綴名
pig腳本名為tempfile,無后綴名
用pig -f tempfile 可直接運行
另外,pig tempfile也可以直接運行
這樣就可以用python臨時文件存儲pig腳本內容直接調用
python調用pig腳本的一種方式
將pig腳本用任意文件存儲,執行時寫入python的臨時文件(tempfile模塊操作),執行結束后刪除。執行過程:用tempfile模塊NamedTemporaryFile生成臨時文件,名字默認隨機,然后,可以用tempfile.name直接調用該文件(無后綴名.pig),pig腳本內容存放在任意文本文件中。
這樣處理的好處是:參數傳入很方便,pig腳本內容中參數全部使用python的格式化字符串,如%s、%d,調用時讀取作為字符串對象command,用%將實際參數拼入字符串command,這樣就避免了使用pig腳本 -p傳入大量參數的繁瑣。
壞處:多此一舉、麻煩。字符直接拼入-p后用 default獲取,也是極好的
pig_script = tempfile.NamedTemporaryFile(delete=False)pig_script.write('set default_parallel %d; SET mapred.job.queue.name %s; %s %s' % (config.PIG_PARALLEL, job_queue, udf_jar_str, command_piece % args))pig_script.flush()command = '''%s -Dmapred.cache.files="%s,%s,%s,%s" -Dmapred.create.symlink=yes -Dmapred.child.java.opts=-Xmx%dm -f %s''' % \(config.PIG_BIN, metadata_dir, quadkey_dir, region_template_dir, ipdb_file, config.PIG_TASK_MAX_MEM, pig_script.name)if logger:logger.debug(command)result = exec_command(command, task_id)
轉載于:https://www.cnblogs.com/cl1024cl/p/6205365.html
總結
以上是生活随笔為你收集整理的pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求珠开头的成语接龙!
- 下一篇: 项目需求分析与建议