问题标签 [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.
scala - Spark:后续 DataFrame 中的 spark-csv 分区和并行性
我想知道在使用spark-csv导入源数据时如何在 Spark 中强制使用后续的、更适当分区的 DataFrame 。
概括:
spark-csv
似乎不支持像sc.textFile()
那样在导入时显式分区。- 虽然它“免费”为我提供了推断模式,但默认情况下,当我在集群中使用 8 个执行程序时,我得到的返回的 DataFrame 通常只有 2 个分区。
- 即使具有更多分区的后续 DataFrame 被缓存
cache()
并用于进一步处理(在导入源文件后立即),Spark 作业历史仍然显示出令人难以置信的任务分布偏差 - 2 个执行程序将拥有绝大多数任务而不是我期望的更均匀的分布。
不能发布数据,但代码只是一些简单的连接,通过添加几列.withColumn()
,然后通过非常基本的线性回归spark.mlib
。
下面是来自 Spark History UI 的比较图像,显示了每个执行程序的任务(最后一行是驱动程序)。
注意:无论是否调用DataFrame repartition()
,我都会得到相同的倾斜任务分布。spark-csv
我如何“强制”Spark 基本上忘记那些初始 DataFrames 并从更适当的分区 DataFrames 开始,或者强制 spark-csv 以某种方式对它的 DataFrames 进行不同的分区(不分叉/修改它的源)?
我可以使用 解决这个问题sc.textFile(file, minPartitions)
,但我希望我不必求助于它,因为它spark-csv
提供的类型很好的模式之类的东西。
python - 在火花中读取 csv 时出现异常
我对火花很陌生。我有 csv 文件,只有 2 列。csv 文件很大(有 3000 万行)。我正在尝试将spark-csv_2.10:1.2.0
其加载到数据帧中。
我正在使用以下代码:
我收到以下错误:
以下提示即将到来。我猜它无法理解换行符。
如何解决这个错误?
hadoop - DataFrame 对象未显示任何数据
我试图使用 spark csv lib 在 hdfs 文件上创建一个数据框对象,如本教程所示。
但是当我试图获取 DataFrame 对象的计数时,它显示为 0
这是我的文件的样子,
员工.csv:
我使用加载了上述文件,
当我查询时,empDf object.printSchema() 给出了正确的模式,其中 empid,empname 作为字符串字段,我可以看到分隔符被正确读取。
但是当我尝试使用显示数据帧时,empDf.show 只给出列标题而没有数据,当我做 empDf.count 给出 0 条记录时。
如果我错过了这里非常需要做的事情,请纠正我。
apache-spark - 将 com.databricks:spark-csv spark 包动态加载到我的应用程序
我需要使用 spark submit 将 com.csv spark 包动态加载到我的应用程序中,它可以工作
但是当我使用
对于以下配置,它不起作用...
sql - 当str的格式为dd/mm/yyyy时,如何将列类型从str转换为日期?
我从一个大的 csv 文件导入的 sql 中有一个大表。
当一列包含格式为 dd/mm/yyyy 的日期信息时,该列被识别为 str。
我试过select TO_DATE('12/31/2015') as date
了,但这不起作用,因为 TO_DATE 函数需要 yyyy-mm-dd 格式。
如何在 sql 中将 '12/31/2015' 字符串重新排列为 '2015-12-31' 格式,以便将列类型转换为日期?
我在 sparkSQL(在 databricks 环境中)上执行此操作,因为数据量非常大,update
似乎不支持 sql 的关键字。
apache-spark - 我可以使用 spark-csv 将表示为字符串的 CSV 读入 Apache Spark
我知道如何使用 spark-csv ( https://github.com/databricks/spark-csv ) 将 csv 文件读入 spark,但我已经将 csv 文件表示为字符串,并希望将此字符串直接转换为数据框。这可能吗?
scala - 如何在 EMR 上安装自定义 spark 分支?
我希望我的 AWS EMR 拥有来自 git repo 的特定 Spark 分支,而不是默认的 Spark。
我想这样做的原因是,我想使用一个分支来修复 csv 的空值。
scala - 在将 csv 文件作为数据框读取时提供架构
我正在尝试将 csv 文件读入数据框。我知道我的数据框的架构应该是什么,因为我知道我的 csv 文件。另外我正在使用 spark csv 包来读取文件。我试图指定如下架构。
但是当我检查我创建的数据框的架构时,它似乎采用了自己的架构。我做错什么了吗?如何让火花拿起我提到的模式?
scala - 应用 UDF 后的 Databircs.CSV.Write - spark 2.0.0,scala 2.11.8
我有以下实例: - Hadoop 2.7.3 - Scala 2.11.8 - Spark 2.0.0 - SBT 0.13.11 一切都在本地构建。该代码是在 Intellij 中开发的,我通过单击调试来运行它。
一切正常,除非我尝试使用 udf
如果我将 master 设置为“local [*]”而不是独立运行,则一切正常。我还尝试写入独立的 hadoop 并指定绝对路径(不是 hdfs),它也运行良好。所以问题在于独立的火花实例或我运行工作的方式。
代码写入失败。所以看起来它处理了一切
构建.sbt
和日志的开头
scala - 对 bzip2 csv 数据执行数据帧联合时出现索引越界错误
问题很奇怪。如果我使用未压缩的文件,则没有问题。但是,如果我使用压缩的 bz2 文件,我会得到一个索引越界错误。
从我读过的内容来看,它显然是 spark-csv 解析器,它没有检测到行尾字符并将整个内容读取为一条巨大的线。它适用于未压缩的 csv 但不适用于 .csv.bz2 文件的事实对我来说很奇怪。
另外,就像我说的,它只发生在进行数据框联合时。我试图用火花上下文做 rdd 联合,同样的错误。