Python 火花查询拼花地板文件-错误回溯说文件丢失。。。但是文件在那里。为什么?
我使用拼花文件使用Python将数据持久化到Spark数据框中 拼花地板似乎保存正确,但当它再次加载到数据帧中时,df.show()将生成一个错误,回溯表明拼花地板目录中缺少一个文件 奇怪的是,一个ls命令在收到错误后立即显示文件在那里 对可能发生的事情有什么想法吗 ipynb的相关部分包含在以下纯文本中:Python 火花查询拼花地板文件-错误回溯说文件丢失。。。但是文件在那里。为什么?,python,apache-spark,apache-spark-sql,parquet,spark-dataframe,Python,Apache Spark,Apache Spark Sql,Parquet,Spark Dataframe,我使用拼花文件使用Python将数据持久化到Spark数据框中 拼花地板似乎保存正确,但当它再次加载到数据帧中时,df.show()将生成一个错误,回溯表明拼花地板目录中缺少一个文件 奇怪的是,一个ls命令在收到错误后立即显示文件在那里 对可能发生的事情有什么想法吗 ipynb的相关部分包含在以下纯文本中: [12]中的 #将此DF持久化为拼花文件 确认信号DF.SAVEASPAQUETFILE(“修正的Dopperler.parquet”) 在[13]中: #ls显示拼花地板目录和所有数据文
[12]中的
#将此DF持久化为拼花文件
确认信号DF.SAVEASPAQUETFILE(“修正的Dopperler.parquet”)
在[13]中:
#ls显示拼花地板目录和所有数据文件已正确创建
ls-l修正的多普勒拼花地板
总数932
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户0 10月5日18:22成功
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户1118 10月5日18:22(通用)
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户41992 10月5日18:22
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户36268 10月5日18:20第r-00001部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户36631 10月5日18:20第r-00002部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户34087 10月5日18:20 part-r-00003.镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户20103年10月5日18:20 part-r-00004.镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户22344 10月5日18:20第r-00005部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户13438 10月5日18:20第r-00006部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户14898 10月5日18:20第r-00007部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户20501年10月5日18:20 part-r-00008.镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户21550 10月5日18:20第r-00009部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户24827 10月5日18:20第r-00010部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户18216年10月5日18:20第r-00011部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户19561年10月5日18:20第r-00012部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户22652 10月5日18:20第r-00013部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户6134 10月5日18:20第r-00014部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户4275 10月5日18:18第r-00015部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户7383 10月5日18:19第r-00016部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户5188 10月5日18:19第r-00017部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户26420 10月5日18:20第r-00018部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户22254 10月5日18:20第r-00019部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户28356 10月5日18:20第r-00020部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户15422 10月5日18:20 part-r-00021.镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户17046 10月5日18:20第r-00022部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户19774年10月5日18:20第r-00023部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户28917 10月5日18:20第r-00024部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户24184 10月5日18:20第r-00025部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户21649 10月5日18:20第r-00026部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户22093年10月5日18:20第r-00027部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户19092年10月5日18:20第r-00028部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户16031 10月5日18:20第r-00029部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户10181 10月5日18:20第r-00030部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户8465 10月5日18:20第r-00031部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户10999 10月5日18:20第r-00032部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户11059 10月5日18:20 part-r-00033.镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户21826 10月5日18:20第r-00034部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户21474 10月5日18:20第r-00035部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户28181 10月5日18:20第r-00036部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户30956 10月5日18:20第r-00037部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户40088 10月5日18:20第r-00038部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户23564 10月5日18:20第r-00039部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户24405 10月5日18:20第r-00040部分:镶木地板
-rw-r--r--1 s26e-5a5fbda111ac17-5edfd8a0d95d用户4740 10月5日18:20第r-01021部分:镶木地板\
在[14]中:
#加载刚刚保存的拼花地板文件,然后计数/显示DF
confirmedSignalsDF=sqlContext.parquetFile(“correctedDoppler.parquet”)
确认信号DF.count
确认信号显示(10)
#这将导致跟踪错误,指出其中一个数据文件不存在。。。
#但是错误下方单元格中的ls命令显示该文件确实存在
---------------------------------------------------------------------------
Py4JJavaError回溯(最近一次调用)
在()
2 confirmedSignalsDF=sqlContext.parquetFile(“correctedDoppler.parquet”)
3确认信号DF.count
---->4确认信号显示(10)
/show(self,n)中的usr/local/src/spark/python/pyspark/sql/dataframe.py
2715鲍勃
272 """
-->273打印self.\u jdf.showString(n).encode('utf8','ignore')
274
275定义报告(自我):
/usr/local/src/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py in __调用(self,*args)
536 answer=self.gateway\u client.send\u命令(command)
537返回
In [12]:
#persist this DF as a Parquet File
confirmedSignalsDF.saveAsParquetFile("correctedDoppler.parquet")
In [13]:
# ls shows that the parquet directory and all data files have been properly created
ls -l correctedDoppler.parquet
total 932
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 0 Oct 5 18:22 _SUCCESS
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 1118 Oct 5 18:22 _common_metadata
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 41992 Oct 5 18:22 _metadata
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 36268 Oct 5 18:20 part-r-00001.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 36631 Oct 5 18:20 part-r-00002.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 34087 Oct 5 18:20 part-r-00003.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 20103 Oct 5 18:20 part-r-00004.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 22344 Oct 5 18:20 part-r-00005.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 13438 Oct 5 18:20 part-r-00006.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 14898 Oct 5 18:20 part-r-00007.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 20501 Oct 5 18:20 part-r-00008.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 21550 Oct 5 18:20 part-r-00009.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 24827 Oct 5 18:20 part-r-00010.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 18216 Oct 5 18:20 part-r-00011.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 19561 Oct 5 18:20 part-r-00012.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 22652 Oct 5 18:20 part-r-00013.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 6134 Oct 5 18:20 part-r-00014.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 4275 Oct 5 18:18 part-r-00015.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 7383 Oct 5 18:19 part-r-00016.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 5188 Oct 5 18:19 part-r-00017.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 26420 Oct 5 18:20 part-r-00018.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 22254 Oct 5 18:20 part-r-00019.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 28356 Oct 5 18:20 part-r-00020.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 15422 Oct 5 18:20 part-r-00021.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 17046 Oct 5 18:20 part-r-00022.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 19774 Oct 5 18:20 part-r-00023.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 28917 Oct 5 18:20 part-r-00024.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 24184 Oct 5 18:20 part-r-00025.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 21649 Oct 5 18:20 part-r-00026.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 22093 Oct 5 18:20 part-r-00027.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 19092 Oct 5 18:20 part-r-00028.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 16031 Oct 5 18:20 part-r-00029.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 10181 Oct 5 18:20 part-r-00030.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 8465 Oct 5 18:20 part-r-00031.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 10999 Oct 5 18:20 part-r-00032.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 11059 Oct 5 18:20 part-r-00033.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 21826 Oct 5 18:20 part-r-00034.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 21474 Oct 5 18:20 part-r-00035.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 28181 Oct 5 18:20 part-r-00036.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 30956 Oct 5 18:20 part-r-00037.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 40088 Oct 5 18:20 part-r-00038.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 23564 Oct 5 18:20 part-r-00039.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 24405 Oct 5 18:20 part-r-00040.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 4740 Oct 5 18:20 part-r-01021.parquet\
In [14]:
# Load parquet file just saved and then count/show the DF
confirmedSignalsDF = sqlContext.parquetFile("correctedDoppler.parquet")
confirmedSignalsDF.count
confirmedSignalsDF.show(10)
# This will result in a tracebock error saying that one of the data files does not exist...
# But the ls command in the cell immediately below the error shows that this file does exist
---------------------------------------------------------------------------
Py4JJavaError Traceback (most recent call last)
<ipython-input-14-6594c02048b7> in <module>()
2 confirmedSignalsDF = sqlContext.parquetFile("correctedDoppler.parquet")
3 confirmedSignalsDF.count
----> 4 confirmedSignalsDF.show(10)
/usr/local/src/spark/python/pyspark/sql/dataframe.py in show(self, n)
271 5 Bob
272 """
--> 273 print self._jdf.showString(n).encode('utf8', 'ignore')
274
275 def __repr__(self):
/usr/local/src/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py in __call__(self, *args)
536 answer = self.gateway_client.send_command(command)
537 return_value = get_return_value(answer, self.gateway_client,
--> 538 self.target_id, self.name)
539
540 for temp_arg in temp_args:
/usr/local/src/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
298 raise Py4JJavaError(
299 'An error occurred while calling {0}{1}{2}.\n'.
--> 300 format(target_id, '.', name), value)
301 else:
302 raise Py4JError(
Py4JJavaError: An error occurred while calling o140.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 9.0 failed 10 times, most recent failure: Lost task 0.9 in stage 9.0 (TID 4590, yp-spark-dal09-env5-0037):
java.io.FileNotFoundException: File file:/home/s26e-5a5fbda111ac17-5edfd8a0d95d/notebook/notebooks/correctedDoppler.parquet/part-r-00015.parquet does not exist
at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:534)
at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:747)
at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:524)
at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:409)
at parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:381)
at parquet.hadoop.ParquetRecordReader.initializeInternalReader(ParquetRecordReader.java:155)
at parquet.hadoop.ParquetRecordReader.initialize(ParquetRecordReader.java:138)
at org.apache.spark.rdd.NewHadoopRDD$$anon$1.<init>(NewHadoopRDD.scala:133)
at org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:104)
at org.apache.spark.rdd.NewHadoopRDD.compute(NewHadoopRDD.scala:66)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:35)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:277)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:244)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:61)
at org.apache.spark.scheduler.Task.run(Task.scala:64)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:203)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627)
at java.lang.Thread.run(Thread.java:801)
Driver stacktrace:
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1204)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1193)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1192)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1192)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:693)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:693)
at scala.Option.foreach(Option.scala:236)
at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:693)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1393)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1354)
at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
In [15]:
#ls of the file said to be missing shows it is there
ls -l /home/s26e-5a5fbda111ac17-5edfd8a0d95d/notebook/notebooks/correctedDoppler.parquet/part-r-00015.parquet
-rw-r--r-- 1 s26e-5a5fbda111ac17-5edfd8a0d95d users 4275 Oct 5 18:18 /home/s26e-5a5fbda111ac17-5edfd8a0d95d/notebook/notebooks/correctedDoppler.parquet/part-r-00015.parquet