问题标签 [spark-csv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
511 浏览

csv - 使用 Spark 从 S3 加载嵌套的 csv 文件

我在 s3 中有数百个压缩的 csv 文件,我正在尝试加载它们。目录结构类似于以下内容:

可能有几个level2、level3目录,每个目录下有很多文件。过去,我使用 .textFile 加载数据并使用通配符传递路径,例如:

这可以很好地加载所有子路径下的所有文件。我现在正在尝试在 spark 2 中使用 csv 加载机制,但我不断收到以下错误:

我尝试使用以下路径:

  1. s3a://bucketname/level1/**
  2. s3a://bucketname/level1/
  3. s3a://bucketname/level1

所有都会导致相同的错误。如果我使用s3a://bucketname/level1/level2.1/level3.1/可以加载该目录下的所有文件,但是如果我尝试使用更高级别的目录,则会失败。

我要加载的代码是:

我虽然使用 csv 加载会引发正常的文件解析策略,但行为似乎与使用 textFile 不同,有没有办法实现所有 csv 格式文件的加载?

谢谢,
内森

0 投票
1 回答
3134 浏览

apache-spark - Databricks Spark CSV 标头分隔符

我们的 csv 文件的格式为 ^A 作为我们的列分隔符和 ^B 作为我们的行分隔符/记录分隔符。因此,我使用 databricks spark csv 库通过以下方式创建数据框:

查看 spark csv 的文档,关于 headers 选项,它说:当设置为 true 时,文件的第一行将用于命名列并且不会包含在数据中。所有类型都将被假定为字符串。默认值为假。

但是,我们没有使用 \n,而是使用 ^B。那么有没有办法告诉 spark csv 库我们的标题也有一个分隔符而不是默认的 \n

0 投票
0 回答
267 浏览

csv - Spark CSV 处理损坏的 GZip 文件

我有一个 spark 2.0 java 应用程序,它使用 sparks csv 读取实用程序将 CSV 文件读入数据帧。问题是有时 100 个输入文件中有 1 个可能是无效的(损坏的 gzip),这会导致作业失败:

当我以前将文件作为文本文件读取并手动解析 CSV 时,我能够编写自定义 TextInputFormat 来处理异常。在使用 spark 的 CSV 阅读器时,我不知道如何指定客户 TextInputFormat。任何帮助,将不胜感激。

当前读取 CSV 的代码:

谢谢,内森

0 投票
1 回答
2417 浏览

scala - 使用 spark 按排序顺序将数据合并到 csv 文件

我有一个这样的数据集:

以及某个文件夹中的 csv 文件,一个对应于数据集中的每个唯一名称:

例如,fred.csv 的内容如下所示:

我的目标是以排序的时间顺序有效地将数据集合并到 CSV,以便 fred.csv 以如下方式结束:

实际上,有成千上万个独特的名字,而不仅仅是两个。我使用 union 和 sort 函数按顺序添加行,但我没有成功使用 partitionBy、for each 或将行合并到正确的 CSV 文件中。

0 投票
1 回答
1627 浏览

apache-spark - Spark CSV 2.1 文件名

我正在尝试使用新的 spark 2.1 csv 选项将 DataFrame 保存到 CSV

一切正常,我不介意使用 part-000XX 前缀,但现在似乎添加了一些 UUID 作为后缀

任何人都知道我如何删除此文件 ext 并仅保留 part-000XX 约定

谢谢

0 投票
2 回答
6157 浏览

apache-spark - 过滤并保存数据框的前 X 行

我正在使用 pySpark 读取和计算数据帧的统计信息。

数据框如下所示:

我正在向数据框中添加一个新timePeriod列,添加后,我想保存前 50K 记录并timePeriod匹配一些预定义的值。

我的意图是使用 dataframe header将这些行保存到 CSV中。

我知道这应该是和的组合,colwrite.csv我不确定如何正确使用它们来实现我的意图。

我目前的代码是:

在添加列之后,我猜我应该使用类似的东西:

有人可以帮我在这里填空,以符合我的意图吗?

0 投票
2 回答
15484 浏览

scala - 如何将标题和列添加到数据框火花?

我有一个数据框,我想在其上手动添加标题和第一列。这是数据框:

数据框的内容

预期的输出是

0 投票
1 回答
3971 浏览

scala - 使用 scala 导入的文件字段中的新行 (LF) 字符的 Spark CSV 问题

我正在尝试使用 spark csv 加载 CSV(制表符分隔) - 通过 scala。

我观察到的是,如果一列包含换行符 LF (\n) 火花将其视为行尾,即使我们在 csv 文件中列的两侧都有双引号。

有没有人遇到过类似的问题?

这是我用过的 scala 代码

但火花将其识别为行尾

在@ashraful 建议后,我尝试了以下查询:

but the result remains the same here is the record i am trying to load

`但是在加载到火花数据框后,我正在尝试检查记录,但其余列在 LS 字符之后加载为空。

在此处输入图像描述

同一行被分成两部分在此处输入图像描述

这是数据:注意第一行的结尾有 LF 字符。

以下是输出:

0 投票
1 回答
3334 浏览

java - 使用 Java 中的 Apache Spark 从 CSV 文件编写 Parquet 文件

我想使用 spark-csv 将 CSV 转换为 Parquet。

读取文件并将其保存为数据集是可行的。不幸的是,我无法将其写回 Parquet 文件。有什么办法可以做到这一点?

例外:

0 投票
3 回答
17966 浏览

pyspark - spark csv 包中的 inferSchema

我正在尝试通过启用 inferSchema 将 csv 文件作为 spark df 读取,但随后无法获取 fv_df.columns。下面是错误信息

但是,如果我不推断架构,则我能够获取列并进行进一步的操作。我无法理解为什么以这种方式工作。谁能给我解释一下。