相关疑难解决方法(0)

Spark:仅在路径存在时读取文件

我正在尝试阅读Sequencescala中Paths中的文件.下面是示例(伪)代码:

val paths = Seq[String] //Seq of paths
val dataframe = spark.read.parquet(paths: _*)
Run Code Online (Sandbox Code Playgroud)

现在,在上面的序列中,存在一些路径而一些路径不存在.有没有办法在读取parquet文件时忽略丢失的路径(避免org.apache.spark.sql.AnalysisException: Path does not exist)?

我已经尝试了以下它似乎工作,但是,然后,我最终读取相同的路径两次,这是我想避免做的事情:

val filteredPaths = paths.filter(p => Try(spark.read.parquet(p)).isSuccess)
Run Code Online (Sandbox Code Playgroud)

我检查了options方法,DataFrameReader但似乎没有任何类似的选项ignore_if_missing.

此外,这些路径可以是hdfss3(这Seq是作为一个方法参数传递),并一边读书,我不知道一个路径是s3hdfs因此无法使用s3hdfs特定的API,以检查是否存在.

scala apache-spark parquet

10
推荐指数
2
解决办法
2万
查看次数

为什么检查hadoop中是否存在文件会导致NullPointerException?

我正在尝试创建或打开一个文件来存储HDFS中的一些输出,但是当我exists在下面的代码片段的倒数第二行调用方法时,我得到一个NullPointerException :

DistributedFileSystem dfs = new DistributedFileSystem();
Path path = new Path("/user/hadoop-user/bar.txt");
if (!dfs.exists(path)) dfs.createNewFile(path);
FSDataOutputStream dos = dfs.create(path);
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪:

java.lang.NullPointerException
        at org.apache.hadoop.dfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:390)
        at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:667)
        at ClickViewSessions$ClickViewSessionsMapper.map(ClickViewSessions.java:80)
        at ClickViewSessions$ClickViewSessionsMapper.map(ClickViewSessions.java:65)
        at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:47)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:227)
        at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2209)
Run Code Online (Sandbox Code Playgroud)

问题是什么?

java hadoop

6
推荐指数
2
解决办法
2万
查看次数

Pyspark中的HDFS文件存在检查

任何人都可以建议在pyspark中检查文件存在的最佳方法。

目前正在使用以下方法进行检查,请指教。

def path_exist(path):

try:
    rdd=sparkSqlCtx.read.format("orc").load(path)
    rdd.take(1)
    return True

except Exception as e:
    return False
Run Code Online (Sandbox Code Playgroud)

python-3.x pyspark

4
推荐指数
2
解决办法
5913
查看次数

标签 统计

apache-spark ×1

hadoop ×1

java ×1

parquet ×1

pyspark ×1

python-3.x ×1

scala ×1