如何查找当前spark上下文中加载的所有文本文件?

2024-04-19 18:41:06 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,当我在使用PySpark的Spark Shell中时,我可以使用以下命令将文件加载到Spark上下文中:

readme = sc.textFile("/home/data/README.md")

然后我可以对这个RDD执行操作(?)如下所示计算文件中的行数:

readme.count() 

然而,我想知道的是,我如何得到一个列表,其中包含我加载到sc(spark context)中的所有sc.textFile(s)?你知道吗

例如,下面有类似的命令来获取所有配置,但它没有列出我加载的所有文本文件。你知道吗

sc._conf.getAll() 

有没有办法找到所有加载到spark上下文中的文本文件?一份清单?你知道吗


Tags: 文件命令homedatashellmdreadmespark
1条回答
网友
1楼 · 发布于 2024-04-19 18:41:06

你知道吗SparkContext.text文件不在Spark上下文中存储任何内容。 看看sources

  /**
   * Read a text file from HDFS, a local file system (available on all nodes), or any
   * Hadoop-supported file system URI, and return it as an RDD of Strings.
   * The text files must be encoded as UTF-8.
   *

你可以随时缓存你的RDD,以便将它们保存在内存中。这个post解释了缓存机制。你知道吗

如果要跟踪spark作业中的文件,spark submit提供 files标志将文件上载到执行目录。如果你有小文件不改变。你知道吗

如果添加外部文件,spark submit将提供 files标志

spark-submit files您的文件将上载到此HDFS文件夹:hdfs://your cluster/user/your user/.sparkStaging/application\u 1449220589084\u 0508你知道吗

应用程序\u 1449220589084 \u 0508是纱线应用程序ID的示例!你知道吗

在spark应用程序中,您可以通过两种方式查找文件:

1-通过以下代码找到spark staging目录:(但您需要有hdfs uri和用户名)

System.getenv("SPARK_YARN_STAGING_DIR"); 

.sparkStaging/application_1449220589084_0508

2-使用以下命令查找完整的逗号分隔文件路径:

System.getenv("SPARK_YARN_CACHE_FILES"); 

hdfs://yourcluster/user/hdfs/.sparkStaging/application_1449220589084_0508/spark-assembly-1.4.1.2.3.2.0-2950-hadoop2.7.1.2.3.2.0-2950.jar#spark.jar,hdfs://yourcluster/user/hdfs/.sparkStaging/application_1449220589084_0508/your-spark-job.jar#app.jar,hdfs://yourcluster/user/hdfs/.sparkStaging/application_1449220589084_0508/test_file.txt#test_file.txt

相关问题 更多 >