问题标签 [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.
csv - 使用 Spark 从 S3 加载嵌套的 csv 文件
我在 s3 中有数百个压缩的 csv 文件,我正在尝试加载它们。目录结构类似于以下内容:
可能有几个level2、level3目录,每个目录下有很多文件。过去,我使用 .textFile 加载数据并使用通配符传递路径,例如:
这可以很好地加载所有子路径下的所有文件。我现在正在尝试在 spark 2 中使用 csv 加载机制,但我不断收到以下错误:
我尝试使用以下路径:
- s3a://bucketname/level1/**
- s3a://bucketname/level1/
- s3a://bucketname/level1
所有都会导致相同的错误。如果我使用s3a://bucketname/level1/level2.1/level3.1/可以加载该目录下的所有文件,但是如果我尝试使用更高级别的目录,则会失败。
我要加载的代码是:
我虽然使用 csv 加载会引发正常的文件解析策略,但行为似乎与使用 textFile 不同,有没有办法实现所有 csv 格式文件的加载?
谢谢,
内森
apache-spark - Databricks Spark CSV 标头分隔符
我们的 csv 文件的格式为 ^A 作为我们的列分隔符和 ^B 作为我们的行分隔符/记录分隔符。因此,我使用 databricks spark csv 库通过以下方式创建数据框:
查看 spark csv 的文档,关于 headers 选项,它说:当设置为 true 时,文件的第一行将用于命名列并且不会包含在数据中。所有类型都将被假定为字符串。默认值为假。
但是,我们没有使用 \n,而是使用 ^B。那么有没有办法告诉 spark csv 库我们的标题也有一个分隔符而不是默认的 \n
csv - Spark CSV 处理损坏的 GZip 文件
我有一个 spark 2.0 java 应用程序,它使用 sparks csv 读取实用程序将 CSV 文件读入数据帧。问题是有时 100 个输入文件中有 1 个可能是无效的(损坏的 gzip),这会导致作业失败:
当我以前将文件作为文本文件读取并手动解析 CSV 时,我能够编写自定义 TextInputFormat 来处理异常。在使用 spark 的 CSV 阅读器时,我不知道如何指定客户 TextInputFormat。任何帮助,将不胜感激。
当前读取 CSV 的代码:
谢谢,内森
scala - 使用 spark 按排序顺序将数据合并到 csv 文件
我有一个这样的数据集:
以及某个文件夹中的 csv 文件,一个对应于数据集中的每个唯一名称:
例如,fred.csv 的内容如下所示:
我的目标是以排序的时间顺序有效地将数据集合并到 CSV,以便 fred.csv 以如下方式结束:
实际上,有成千上万个独特的名字,而不仅仅是两个。我使用 union 和 sort 函数按顺序添加行,但我没有成功使用 partitionBy、for each 或将行合并到正确的 CSV 文件中。
apache-spark - Spark CSV 2.1 文件名
我正在尝试使用新的 spark 2.1 csv 选项将 DataFrame 保存到 CSV
一切正常,我不介意使用 part-000XX 前缀,但现在似乎添加了一些 UUID 作为后缀
任何人都知道我如何删除此文件 ext 并仅保留 part-000XX 约定
谢谢
apache-spark - 过滤并保存数据框的前 X 行
我正在使用 pySpark 读取和计算数据帧的统计信息。
数据框如下所示:
我正在向数据框中添加一个新timePeriod
列,添加后,我想保存前 50K 记录并timePeriod
匹配一些预定义的值。
我的意图是使用 dataframe header将这些行保存到 CSV中。
我知道这应该是和的组合,col
但write.csv
我不确定如何正确使用它们来实现我的意图。
我目前的代码是:
在添加列之后,我猜我应该使用类似的东西:
有人可以帮我在这里填空,以符合我的意图吗?
scala - 如何将标题和列添加到数据框火花?
我有一个数据框,我想在其上手动添加标题和第一列。这是数据框:
数据框的内容
预期的输出是
scala - 使用 scala 导入的文件字段中的新行 (LF) 字符的 Spark CSV 问题
我正在尝试使用 spark csv 加载 CSV(制表符分隔) - 通过 scala。
我观察到的是,如果一列包含换行符 LF (\n) 火花将其视为行尾,即使我们在 csv 文件中列的两侧都有双引号。
有没有人遇到过类似的问题?
但火花将其识别为行尾
在@ashraful 建议后,我尝试了以下查询:
but the result remains the same here is the record i am trying to load
`但是在加载到火花数据框后,我正在尝试检查记录,但其余列在 LS 字符之后加载为空。
这是数据:注意第一行的结尾有 LF 字符。
以下是输出:
java - 使用 Java 中的 Apache Spark 从 CSV 文件编写 Parquet 文件
我想使用 spark-csv 将 CSV 转换为 Parquet。
读取文件并将其保存为数据集是可行的。不幸的是,我无法将其写回 Parquet 文件。有什么办法可以做到这一点?
例外:
pyspark - spark csv 包中的 inferSchema
我正在尝试通过启用 inferSchema 将 csv 文件作为 spark df 读取,但随后无法获取 fv_df.columns。下面是错误信息
但是,如果我不推断架构,则我能够获取列并进行进一步的操作。我无法理解为什么以这种方式工作。谁能给我解释一下。