当前位置: 首页 > 知识库问答 >
问题:

使用通配符的 spark 读取 Blob 存储

夏和雅
2023-03-14

我想使用数据块将Azure Blob存储文件读入spark。但是我不想为每一级嵌套设置一个特定的文件或< code>*。

标准:是< code>**/*/不起作用。这些工作正常:

val df = spark.read.format("avro").load("dbfs:/mnt/foo/my_file/0/2019/08/24/07/54/10.avro")
val df = spark.read.format("avro").load("dbfs:/mnt/foo/my_file/*/*/*/*/*/*")

失败原因:

java.io.FileNotFoundException: No Avro files found. If files don't have .avro extension, set ignoreExtension to true

val df = spark.read.format("avro").load("dbfs:/foo/my_file/test/**/*")

共有1个答案

戚奇略
2023-03-14

默认情况下,Spark 以递归方式向下读取 - 因此您只需指向根文件夹:

val df = spark.read.format("avro").load("dbfs:/foo/my_file/test/")

路径值实际上是一个正则表达式。

< code>**不执行任何操作

*将起作用-尽管它通常以{*}的形式完成,称为globbing。这值得一读:如何使用regex在sc.textFile中包含/排除一些输入文件?

 类似资料:
  • 问题内容: 我在通过火花流从天蓝色斑点读取数据时遇到问题 上面的代码适用于HDFS,但无法从Azure blob读取文件 上面是在azure UI中显示的路径,但是这行不通,我是否丢失了某些内容,以及如何访问它。 我知道Eventhub是流数据的理想选择,但是我目前的情况要求使用存储而不是队列 问题答案: 为了从Blob存储中读取数据,需要完成两件事。首先,您需要告诉Spark在基础Hadoop配

  • 编写了通过Spark读取文本文件的代码...在Local中运行良好...但在HDInsight中运行时产生错误->从Blob读取文本文件 org.apache.spark.sparkException:作业由于阶段失败而中止:阶段0.0中的任务0失败了4次,最近的失败:阶段0.0中丢失的任务0.3(TID 5,wn1-hchdin.bpqkkmavxs0ehkfnaruw4ed03d.dx.int

  • 我正在通过Spark使用以下命令读取csv文件。 我需要创建一个Spark DataFrame。 我使用以下方法将此rdd转换为spark df: 但是在将rdd转换为df时,我需要指定df的模式。我试着这样做:(我只有两列文件和消息) 然而,我得到了一个错误:java。lang.IllegalStateException:输入行没有架构所需的预期值数。需要2个字段,但提供1个值。 我还尝试使用以

  • 我正在尝试使用spack-csv从spack-shell中的aws s3读取csv。 下面是我所做的步骤。使用下面的命令启动spack-shell 箱子/火花壳——包装com。数据块:spark-csv\u 2.10:1.2.0 在shell中,执行以下scala代码 获取以下错误 我在这里错过了什么?请注意,我可以使用 同样的scala代码在databricks笔记本中也可以正常工作 在spar

  • 我有一个map-reduce作业,并且reducer获得一个驻留在Azure Blob存储中的文件的绝对地址,并且reducer应该打开它并读取它的内容。在配置Hadoop集群(HDInsight)时,我添加了包含文件的存储帐户。因此,还原器必须有权访问这个Blob存储,但Blob存储不是我的作业的默认HDFS存储。我的reducer中有以下代码,但它给了我一个FileNotFound错误消息。

  • 我们正在Linux上运行的AzureV2云上测试hadoop HA集群。我们正在尝试切换到Azure BLOB存储。我们不确定应该如何使用Blob存储配置名称节点。我们收到以下错误: 我们不确定名称节点设置。原始设置中的两个name节点可能会过度使用,因为基础BLOB应该处理所有复制等。 谁能澄清一下吗?