我想在火星上做一些ip到位置计算,在探索网后,找到IPLocator https://github.com/miraclesu/IPLocator,
IP到位需要使用包含映射信息的文件。
打包jar之后,我可以使用本地java运行它,该程序包只与同一目录中的IPLocator.jar
和qqwry.dat
一起运行。
但是我想使用spark使用这个jar,我在启动spark-shell时尝试使用--jars IPLocator.jar qqwry.dat
,但是在启动时,函数仍然无法读取文件。
文件读取代码就像
QQWryFile.class.getClassLoader().getResource("qqwry.dat")
我还尝试将qqwry.dat
文件打包到jar中,但它没有用。
答案 0 :(得分:1)
您需要在程序中使用--files
然后SparkFiles.get
答案 1 :(得分:0)
尝试使用逗号分隔符并检查IPLocator.jar和qqwry.dat是否已分发到spark staging文件夹(.sparkStaging/application_xxx
)。
--jars IPLocator.jar,qqwry.dat