import os
import pyspark.sql.functions as F
from os import listdir, path
from pyspark import SparkConf, SparkContext
import argparse
from pyspark import SparkFiles
from pyspark.sql import SparkSession
def main():
spark = SparkSession \
.builder \
.appName("Spark File load example") \
.config("spark.jars","/u/user/someuser/sqljdbc4.jar") \
.config("spark.dynamicAllocation.enabled","true") \
.config("spark.shuffle.service.enabled","true") \
.config("hive.exec.dynamic.partition", "true") \
.config("hive.exec.dynamic.partition.mode", "nonstrict") \
.config("spark.sql.shuffle.partitions","50") \
.config("hive.metastore.uris", "thrift://******.hpc.****.com:9083") \
.enableHiveSupport() \
.getOrCreate()
spark.sparkContext.addFile("/u/user/vikrant/testdata/EMPFILE1.csv")
inputfilename=getinputfile(spark)
print("input file path is:",inputfilename)
data = processfiledata(spark,inputfilename)
data.show()
spark.stop()
def getinputfile(spark):
spark_files_dir = SparkFiles.getRootDirectory()
print("spark_files_dir:",spark_files_dir)
inputfile = [filename
for filename in listdir(spark_files_dir)
if filename.endswith('EMPFILE1.csv')]
if len(inputfile) != 0:
path_to_input_file = path.join(spark_files_dir, inputfile[0])
else:
print("file path not found",path_to_input_file)
print("inputfile name:",inputfile)
return path_to_input_file
def processfiledata(spark,inputfilename):
dataframe= spark.read.format("csv").option("header","false").load(inputfilename)
return dataframe
if __name__ == "__main__":
main()
Below is my shell script-->
spark-submit --master yarn --deploy-mode client PysparkMainModulenew.py --files /u/user/vikrant/testdata/EMPFILE1.csv
('SPARK_FILES_DIR:',U'/H/TMP/Spark-76BDBD48-CBB4-4E8F-971A-383B899F79B0/userfiles-EE6DCDEC-B320-433B-8491-311927C75FE2')('inputfile name:',[U'empfile1.csv'])('input file path:',U'/H/TMP/Spark-76BDBD48-CBB4-4E8F-971A-383B899F79B0/Userfiles-EE6DCD-B320-433B-8491-31927C75FE 27C75FE2/empfile1.csv')回溯(最近的调用为last):文件“/u/user/vikrant/testdata/pysparkmainmodulenew.py”,第57行,在main()文件“/u/user/vikrant/testdata/pysparkmainmodulenew.py”中,第31行,在main data=processfiledata(spark,inputfilename)文件“/u/user/vikrant/testdata/pysparkmainmodulenew.py”中,第53行,在processfiledata current/spark2-client/python/lib/pyspark.zip/pyspark/sql/readwriter.py“,第166行,加载文件”/usr/hdp/current/spark2-client/python/lib/pyspark/zip/pyspark/sql/readwriter.py“,第1160行,调用文件”/usr/hdp/current/spark2-client/python/lib/pyspark/sql/utils.py“,第6行9,在deco pyspark.sql.utils.analysisException:U'路径不存在:hdfs://hdd2cluster/h/tmp/spark-76bdbd48-cbb4-4e8f-971a-383b899f79b0/userfiles-ee6dcdec-b320-433b-8491-311927c75fe2/empfile1.csv;‘
你有这样的东西。这是行不通的,因为您需要在--files
选项之后放置pysparkmainmodulenew.py
。所以,这个
spark-submit --master yarn --deploy-mode client PysparkMainModulenew.py --files /u/user/vikrant/testdata/EMPFILE1.csv
应该是,
spark-submit --master yarn --deploy-mode client --files /u/user/vikrant/testdata/EMPFILE1.csv PysparkMainModulenew.py
在这种情况下,不需要使用addfile
。您可以将pysparkmainmodulenew.py
和empfile1.csv
复制到同一个文件夹中。并且,所有内容都应该在--files
选项之后。
spark-submit --master yarn --deploy-mode client --files /u/user/vikrant/testdata/EMPFILE1.csv /u/user/vikrant/testdata/PysparkMainModulenew.py
谢谢大家 我的代码:
问题内容: 这是问题的一个简单示例: myStyle.css 如果要使用脚本,效果很好 解决方案: 1.在文件在线/本地主机时工作 2.在其他浏览器(例如Internet Explorer,Microsoft Edge,Firefox)下工作 3. chrome –allow-file-access-from-files 问题答案: TL; DR:从Chrome 64开始,您需要使用本地开发服务器
问题内容: 就像标题所说的那样,我正在尝试使用jQuery AJAX调用或访问本地HTML文件来访问(POST)。我无法正常工作。 我做了Google,在这里也看到了几个问题,但无法正常工作。我需要一些帮助。到目前为止,这是我尝试过的。 dataType:jsonp crossDomain:正确 在响应中设置标题: response.setHeader(“Access-Control-Allow-
本文向大家介绍Android访问assets本地json文件的方法,包括了Android访问assets本地json文件的方法的使用技巧和注意事项,需要的朋友参考一下 目的:当App中用到固定的json数据时,如:国家城市列表、班级成员等时,可以将json数据制作为本地json文件存入assets文件夹下。 步骤如下: 1、新建assets文件夹,并将json文件复制到此文件夹中 在main文件夹
问题内容: 我是angularjs的新手,我整天都在网上进行搜索,目的是找到一种解决方案,可以从本地json文件获取数据,而不必在我的webapp中使用本地主机。不幸的是,我还没有找到任何东西。我尝试使用$http.get,但收到Cross Origin *错误。 有没有其他方法可以从本地json文件中获取数据而不必在本地托管我的webapp? angularjs是否有其他功能可以从本地json文
我正在尝试使用以下代码打开一个文本文件: 此代码导致此错误(第69行是FileReader初始化): 这是我的文件系统的样子:这里 感谢任何和所有帮助!