文档首页/ 数据治理中心 DataArts Studio/ 常见问题/ 数据开发/ Spark Python脚本如何引用Python脚本?
更新时间:2024-05-22 GMT+08:00
分享

Spark Python脚本如何引用Python脚本?

下图为一个Python脚本:

def hello1(odps):
    sql_str="""select
        date_ptn (
                to_char (
                        TO_DATE('20231008', 'yyyyMMdd'),
                        'yyyy-mm-dd hh:mm:ss'
                 ),
                 'm'
        )"""
    odps.sql(sql_str).show()

创建一个Spark Python脚本:

图1 Spark Python脚本
## SparkPython 
 ## ******************************************************************** ##
 ## author: Huawei-readonly
 ## create time: 2023/10/08 15:22:36 GMT+08:00
 ## ******************************************************************** ##
 ## SparkPython 
 ## ******************************************************************** ##
 ## author: Huawei-readonly
 ## create time: 2023/09/26 10:42:37 GMT+08:00
 ## ******************************************************************** ##
 import subprocess 
 import time 
 from pyspark import SparkConf, SparkContext 
 from pyspark.sql import SparkSession,SQLContext 
 import hello

 def execute_sql(sql_query):
 return odps.sql(sql_query) 

 def create_spark_session():
 conf = SparkConf().setAppName("myj").setMaster("yarn").set("spark.executor.memory", "8g").set("spark.executor.cores", "4")
 spark = SparkSession \
 .builder \
 .config(conf=conf) \
 .getOrCreate()
 return spark


 if __name__ == '__main__':

 # 创建一个名为"myj"的SparkSession对象
 odps = create_spark_session()

 odps.execute_sql=execute_sql

 # 执行sql 
 # sql_str="""select week_datepart('2013-01-08 01:10:00', 'mwm');"""
 # odps.execute_sql(sql_str) .show()

 hello.hello1(odps)
 # print("xxx")
 
--py-files hdfs:///tmp/pyspark/hello.py
 

在作业算子MRS Spark Python中引用Python脚本:

在运行程序参数中配置参数--py-files和参数值hdfs:///tmp/pyspark/hello.py

图2 算子MRS Spark Python中引用Python脚本

该示例是将脚本上传到HDFS路径,上传到OBS路径也适用。

相关文档