问题标签 [spark-dataframe]

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 投票
7 回答
108917 浏览

hadoop - 将 Spark 数据帧保存为 Hive 中的动态分区表

我有一个示例应用程序可以将 csv 文件读取到数据帧中。可以使用方法将数据帧以 parquet 格式存储到 Hive 表中 df.saveAsTable(tablename,mode)

上面的代码工作正常,但是我每天都有这么多数据,我想根据创建日期(表中的列)对配置单元表进行动态分区。

有没有办法动态分区数据框并将其存储到配置单元仓库。想要避免使用hivesqlcontext.sql(insert into table partittioin by(date)....).

可以将问题视为对以下内容的扩展:如何将 DataFrame 直接保存到 Hive?

任何帮助深表感谢。

0 投票
3 回答
6080 浏览

apache-spark - 在火花中选择映射键作为数据框中的列

我有一个来自 cassandrasql 的数据框,我有一个列,它是数据框中的地图,例如

我需要从 df 中选择一些列以及从地图中选择特定键作为 df 中的列,而不是完整的地图

假设我有一个 key1 -> value1 key2 -> value2 ...的映射。

我只需要从数据框中的地图中选择 key1 作为新数据框中的一列。我怎样才能做到这一点

另外我正在使用 cassandrasqlcontext.sql 来获取数据框。

0 投票
3 回答
5714 浏览

apache-spark - 哪个是高效的,Dataframe 或 RDD 或 hiveql?

我是 Apache Spark 的新手。

我的工作是读取两个 CSV 文件,从中选择一些特定的列,将其合并、聚合并将结果写入单个 CSV 文件。

例如,

CSV1

CSV2

我想获得第三个 CSV 文件

我将两个 CSV 都加载到数据框中。然后能够使用数据帧中join,select,filter,drop存在的几种方法获得第三个数据帧

我也可以使用几个RDD.map()

我也可以使用执行来做同样的hiveql事情HiveContext

如果我的 CSV 文件很大,我想知道哪种方法最有效,为什么?

0 投票
1 回答
2211 浏览

apache-spark - 如何删除数据框中的空分区?

我需要从 Dataframe 中删除空分区

我们有两个数据框,都是使用 sqlContext 创建的。数据框的构造和组合如下

现在combinedDF的分区数是200。从这里发现我们使用join时默认的分区数是200。

在某些情况下,dataframe/csv 并不大,并且会出现许多空分区,这会导致代码的后面部分出现问题。

那么我怎样才能删除这些创建的空分区呢?

0 投票
1 回答
3669 浏览

csv - 如何在数据框中指定缺失值

我正在尝试使用 Apache Zeppelin 笔记本将 CSV 文件加载到带有 spark-csv [1] 的 Spark 数据帧中,当加载没有值的数字字段时,解析器对该行失败并且该行被跳过。

我本来希望该行被加载并且数据框中的值加载该行并将值设置为NULL,以便聚合忽略该值。

这是数据文件的内容:/home/spark_user/data.csv

这是输出:

在 zeppelin 的日志中,我可以在解析 santa 的行时看到以下错误:

所以到目前为止你可能会告诉我这么好......你是对的;)

现在我想添加一个额外的列,比如年龄,我总是在那个字段中有数据。

现在礼貌地询问一些关于年龄的统计数据:

结果

都错了!由于圣诞老人的身高未知,整条线都丢失了,年龄的计算仅基于 Sam 和 Cath,而圣诞老人的年龄完全有效。

我的问题是我需要插入圣诞老人的高度以便加载 CSV 的值是多少。我试图将架构设置为全部 StringType 但随后

下一个问题更多关于

我在 API 中发现可以使用 spark 处理 N/A 值。所以我想也许我可以加载所有列设置为 StringType 的数据,然后进行一些清理,然后只正确设置架构,如下所示:

但是 df.na.replace() 抛出异常并停止:

非常感谢任何帮助和提示!

[1] https://github.com/databricks/spark-csv

0 投票
0 回答
764 浏览

r - Spark DataFrame 的 SparkR collect() 和 head() 错误:参数暗示不同的行数

我从 HDFS 系统中读取了 parquet 文件:

我读过一些关于这个问题的帖子。但这不是我的情况。事实上,我只是从 parquet 文件中读取了一个表,head()或者collect()它。我的拼花桌是这样的:

我正在使用 spark-1.4.0-bin-hadoop2.6 我通过使用在集群上运行它

我在本地也试过了,同样的问题。

我还尝试在 Scala 中读取这个 parquet 文件。并执行 collect() 操作。似乎一切正常。所以这应该是 SparkR 特有的问题

0 投票
0 回答
458 浏览

apache-spark - Scala Spark App 提交到 yarn-cluster 并在 SUCCEEDED 中取消注册,没有做任何事情

目标

在 yarn-cluster 模式下运行我们的 scala spark app jar。它适用于独立集群模式和 yarn-client,但由于某种原因,它无法在 yarn-cluster 模式下运行完成。

细节

它似乎执行的代码的最后一部分是在读取输入文件时将初始值分配给 Dataframe。看起来它在那之后没有做任何事情。没有任何日志看起来异常,也没有警告或错误。它突然被取消注册,状态为成功,一切都被杀死了。在任何其他部署模式(例如,yarn-client、独立集群模式)上,一切都可以顺利完成。

我还在 vanilla spark/YARN 集群和 cdh 5.4.3 集群上的 spark 1.3.x 和 1.4.x 上运行了这项工作。所有结果都相同。可能是什么问题?

使用以下命令运行作业,并且可以通过 hdfs 访问输入文件。

代码片段

这是加载数据框的区域中的代码。它吐出日志消息“Uploading Dataframe ...”,但之后没有其他内容。请参阅下面的驱动程序日志

驱动程序日志

0 投票
2 回答
3990 浏览

apache-spark - SPARK Dataframes 上的采样方法是统一采样吗?

我想从数据框中随机选择一定数量的行,并且我知道示例方法可以做到这一点,但我担心我的随机性应该是统一采样?所以,我想知道 Spark on Dataframes 的示例方法是否统一?

谢谢

0 投票
4 回答
8874 浏览

java - 如何使用 java 在 spark 中读取 xls 和 xlsx 文件?

我想在 spark 中逐行读取 xls 和 xlsx (MS Excel) 文件,就像我们对文本文件做的那样,或者任何方式?

我想使用 spark 来提高读取大型 xls 文件(例如 1 GB)的性能,这就是为什么我需要 spark 像我们对文本文件一样读取部分文件的原因。

如何从spark中的excel文件中读取数据,无论是否逐行?

我只想使用 spark 读取 xls 文件中的条目。

请建议。

谢谢!!!

0 投票
2 回答
4556 浏览

apache-spark - SparkSQL DataFrame 跨分区排序

我正在使用 spark sql 对我的数据集运行查询。查询的结果非常小,但仍然是分区的。

我想合并生成的 DataFrame 并按列对行进行排序。我试过了

我也试过

输出文件按块排序(即分区是有序的,但数据帧没有作为一个整体排序)。例如,而不是

我明白了

  1. 获得查询结果绝对排序的正确方法是什么?
  2. 为什么不将数据框合并到单个分区中?