【发布时间】:2020-07-10 23:59:19
【问题描述】:
我是新来的火花和学习它。有人可以帮助解决以下问题
火花权威中关于数据帧定义的引用是“一般来说,Spark 只会在作业执行时失败,而不是在数据帧定义时失败——即使, 例如,我们指向一个不存在的文件。这是由于懒惰的评估,”
所以我猜spark.read.format().load() 是数据框定义。在这个创建的数据框之上,我们应用转换和操作,如果我没记错的话,加载是读取 API 而不是转换。
我试图在加载中“不存在的文件”,我认为这是数据框定义。但我得到了以下错误。根据这本书它不应该失败吧?我肯定错过了一些东西。有人可以帮忙吗?
df=spark.read.format('csv')
.option('header',
'true').option('inferschema', 'true')
.load('/spark_df_data/Spark-The-Definitive-Guide/data/retail-data/by-day/2011-12-19.csv')
错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/hdp/current/spark2-client/python/pyspark/sql/readwriter.py", line 166, in load
return self._df(self._jreader.load(path))
File "/usr/hdp/current/spark2-client/python/lib/py4j-0.10.6-src.zip/py4j/java_gateway.py", line 1160, in __call__
File "/usr/hdp/current/spark2-client/python/pyspark/sql/utils.py", line 69, in deco
raise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: u'Path does not exist: /spark_df_data/Spark-The-Definitive-Guide/data/retail-data/by-day/2011-12-19.csv;'
为什么数据框定义在延迟评估时引用 Hadoop 元数据?
【问题讨论】:
标签: dataframe apache-spark pyspark rdd lazy-evaluation