pyspark奇怪问题

一、集群配置文件坑——感觉就是bug~

[jaxim@ip-172-20-9-101 jaxim_userprofile_notification]$ ls -R
.:
finance_app.txt  lib  run.sh  src

./lib:
GeoLite2-City.mmdb  rule.json  spend_level.json

./src:
profile_noti.py  profile_tool.py  __pycache__

文件结构大概如上:

finance_app.txt如果放在lib目录下,就会显示找不到文件,而放到当前文件或这src文件下就可。

最坑的是lib下其他两个json格式文件是可以读取的,而即使把finance_app.txt改成finance_app.json依然无法读取。——无法确定这个原因到底是啥??

附:

采用sc.addPyFile()和sc.addFile()方式添加相关配置文件。

sc.addPyFile():常用于.py 和.zip 文件的添加,且支持较大的文件;

sc.addFile():常用于小文件

import sys
from pyspark import HiveContext
from pyspark.sql import SparkSession
from pyspark import StorageLevel
from datetime import datetime as dt
import os
import re
from datetime import datetime
import geoip2.database
import random

import profile_tool

if (sys.argv[2] != 'test'):
    os.environ['PYSPARK_PYTHON'] = '/usr/bin/python3'
    os.environ['SPARK_DRIVER_PYTHON'] = '/usr/bin/python3'
    os.environ['JAVA_HOME'] = '/usr/lib/jvm/java-openjdk/'
    os.environ['SPARK_HOME'] = '/usr/hdp/3.0.1.0-187/spark2/'
    os.environ['PYTHONPATH'] = '$SPARK_HOME/python/:$PYTHONPATH'

spark = SparkSession \
    .builder \
    .appName("profile_notification") \
    .getOrCreate()

sc = spark.sparkContext
sc.setLogLevel("Error")
hivec = HiveContext(sc)

sc.addPyFile("profile_tool.py")
sc.addPyFile("../lib/GeoLite2-City.mmdb")
sc.addFile("../finance_app.txt")
sc.addFile("../lib/rule.json")
sc.addFile("../lib/spend_level.json")

本来还想将配置文件和脚本分开,看来是分不开了~。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值