Python引用自定义模块优先级
先看下图: 先看下图:
1. /home/mart_vdp/tmp_syq/hivetask_test 是我测试python脚本的当前目录 1. /home/mart_vdp/tmp_syq/hivetask_test 是我测试python脚本的当前目录
2./software/edw/common/HiveTask 是公共包HiveTask.py的存放目录 2./software/edw/common/HiveTask 是公共包HiveTask.py的存放目录
3.使用 sys.path.append(common/)
默认加在sys.path的最后 3.使用 sys.path.append(common/) 默认加在sys.path的最后
3.使用 sys.path.append(common/) 默认加在sys.path的最后
4.使用 sys.path.insert(0,‘common/’) 后会将path目录加在最前面
4.使用 sys.path.insert(0,‘common/’) 后会将path目录加在最前面
4.使用 sys.path.insert(0,‘common/’) 后会将path目录加在最前面
python是按照sys.path的优先级去寻找的模块,如果找到就停止加载。因此,在执行咱自己写的Python脚本调用HiveTask时,下图中sys.path的目录顺序即为调用哪个目录下面HiveTask.py的优先级顺序。 python是按照sys.path的优先级去寻找的模块,如果找到就停止加载。因此,在执行咱自己写的Python脚本调用HiveTask时,下图中sys.path的目录顺序即为调用哪个目录下面HiveTask.py的优先级顺序。
3.使用 sys.path.append(common/) 默认加在sys.path的最后 4.使用 sys.path.insert(0,‘common/’) 后会将path目录加在最前面 python是按照sys.path的优先级去寻找的模块,如果找到就停止加载。因此,在执行咱自己写的Python脚本调用HiveTask时,下图中sys.path的目录顺序即为调用哪个目录下面HiveTask.py的优先级顺序。
所以大家可以按照这个思路去做前两天说的那个问题: 所以大家可以按照这个思路去做前两天说的那个问题:
修改 HiveTask,增加 set hive.exec.max.dynamic.partitions.pernode=1000; 修改动态分区数量 修改 HiveTask,增加 set hive.exec.max.dynamic.partitions.pernode=1000; 修改动态分区数量
方法一:直接将HiveTask.py增加set参数后将其从common包中拿出来,放到跟python脚本同级目录 所以大家可以按照这个思路去做前两天说的那个问题: 修改 HiveTask,增加 set hive.exec.max.dynamic.partitions.pernode=1000; 修改动态分区数量 方法一:直接将HiveTask.py增加set参数后将其从common包中拿出来,放到跟python脚本同级目录
方法二:将common下面的将HiveTask.py增加set参数,然后将自己Python脚本中的 sys.path.append(common/) 改为 sys.path.insert(0,common/) 方法二:将common下面的将HiveTask.py增加set参数,然后将自己Python脚本中的 sys.path.append(common/) 改为 sys.path.insert(0,common/)