DataFrame定义是惰性计算

问题描述 投票:0回答:2

我是新手,可以学习它。有人可以解决以下问题吗?>

spark权威性中有关数据帧定义的引用是“通常,Spark仅在作业执行时而不是在DataFrame定义时才会失败-即使,例如,我们指向一个不存在的文件。这是由于懒惰的评估,“

所以我猜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元数据?

我是新手,可以学习它。有人可以帮忙解决以下问题吗?关于数据帧定义,spark明确引用了“通常,Spark仅在作业执行时才会失败,而是...

dataframe apache-spark pyspark rdd lazy-evaluation
2个回答
0
投票

直到这里定义了数据帧并实例化了读取器对象。


-1
投票

火花是一个懒惰的演变。但是,这并不意味着它无法在加载文件时验证文件是否存在。

© www.soinside.com 2019 - 2024. All rights reserved.