问题标签 [pyspark-sql]

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

apache-spark - Spark sql 在纱线集群模式下抛出 java.lang.OutOfMemoryError 但在纱线客户端模式下工作

我有一个简单的配置单元查询,它在使用 pyspark shell 的纱线客户端模式下工作正常,当我在纱线集群模式下运行它时,它会抛出以下错误。

集群信息:Hadoop 2.4、Spark 1.4.0-hadoop2.4、hive 0.13.1 该脚本从 hive 表中获取 10 列,并进行一些转换并将其写入文件。

完整的堆栈跟踪:

0 投票
1 回答
1304 浏览

pandas - 使用 toPandas() 方法创建的数据框是否分布在 spark 集群中?

我正在通过阅读 CSV

现在 Pdf 是分布在 spark 集群中还是驻留在主机环境中?

0 投票
1 回答
9573 浏览

python - 如何将 numpy.array 作为新列添加到 pyspark.SQL DataFrame?

这是创建 pyspark.sql DataFrame 的代码

所以 sparkdf 看起来像

现在我想添加一个 numpy 数组(甚至是一个列表)作为新列

但是标准的方式

失败。可能 udf 是要走的路,但我不知道如何创建一个 udf,为每个 DataFrame 行分配一个不同的值,即遍历 new_col。我查看了其他 pyspark 和 pyspark.sql 但找不到解决方案。另外我需要留在 pyspark.sql 中,所以不是 scala 解决方案。谢谢!

0 投票
2 回答
13568 浏览

python - pyspark数据框,groupby和计算列的方差

我想对 pyspark 数据框进行分组并计算特定列的方差。对于平均而言,这很容易,可以像这样完成

但是对于方差,函数子模块中似乎没有任何聚合函数(我也想知道为什么,因为这是一个很常见的操作)

0 投票
0 回答
107 浏览

python - Pyspark 将 long 更改为 int

我将 Pyspark 1.2.1 与 Hive 一起使用。(升级不会立即发生)。

我遇到的问题是,当我从 Hive 表中选择并添加索引时,pyspark 将 long 值更改为 ints,因此我最终得到了一个临时表,其中包含 Long 类型的列,但值类型为 Integer。(见下面的代码)。

我的问题是:我怎样才能(a)在不将 long 更改为 int 的情况下执行索引的合并(参见代码);或 (b) 以其他方式添加索引以避免该问题;或(c)随机化表列而不需要加入?

我要解决的根本问题是我想随机化配置单元表中某些列的顺序,并将其写入新表。这是为了使数据不再可识别个人身份。我这样做是通过向原始表和随机列添加递增索引,然后加入该索引来实现的。

该表如下所示:

代码是:

在没有更好的解决方案的情况下,我将在 python 代码中强制受影响的列长类型。这……不太好。

0 投票
1 回答
4483 浏览

python - 在 PySpark 中加入多个列

我想加入两个具有共同列名的 DataFrame。

我的数据框如下:

(我故意使用具有不同名称的相同 DataFrame)

我查看了 Spark 的 JIRA 问题 7197,他们解决了如何执行此连接(这与 PySpark 文档不一致)。但是,他们提出的方法会产生重复的列:

我想得到一个键没有出现两次的结果。

我可以用一列做到这一点:

但是,相同的语法不适用于这种加入方法并引发错误。

我想得到结果:

我想知道这怎么可能

0 投票
1 回答
1281 浏览

cassandra - 查询 cassandra 以转换为数据帧时出现 Pyspark 错误

执行命令时出现以下错误:

0 投票
1 回答
1285 浏览

python - 为什么pyspark sql没有返回值

我创建了一个我试图查询的 spark RDD 表,但结果不是预期的值。知道出了什么问题。

模式被编码在一个字符串中。

将 SchemaRDD 注册为表。

SQL 可以在已注册为表的 SchemaRDD 上运行。**

0 投票
1 回答
287 浏览

apache-spark - SPARK 1.2.0 SQLContext 需要条件值,例如 oracle 中的 case 条件

我在 python 中使用 spark 1.2.0。

我的问题是,在 sql 查询中,如果字段的值为零,我需要用其他值替换它。

我尝试过适用于 1.4.0 但不适用于 1.2.0 的 case /coalese

但是对于 1.2.0,我尝试对 map 做同样的事情

这会引发错误

不确定我能做些什么来实现 spark 1.2.0 中的目标。

感谢您的帮助,我认为它现在正在工作..除了列的顺序似乎已经改变..但这可能不是问题。再次感谢

编辑

这个想法对我帮助很大,需要稍作修改才能解决眼前的问题,-

我修改了原始解决方案以避免“for”出现语法错误。

对方法的调用如下,-

但是现在我正在尝试访问 iifdatadf,

我有以下错误

非常感谢帮助。

0 投票
1 回答
3897 浏览

apache-spark - Why do Window functions fail with "Window function X does not take a frame specification"?

I'm trying to use Spark 1.4 window functions in pyspark 1.4.1

but getting mostly errors or unexpected results. Here is a very simple example that I think should work:

As you can see, if I add rowsBetween frame specification, neither rank() nor lag/lead() window functions recognize it: "Window function does not take a frame specification".

If I omit the rowsBetween frame specification at leas lag/lead() do not throw exceptions but return unexpected (for me) result: always None. And the rank() still doesn't work with different exception.

Can anybody help me to get my window functions right?

UPDATE

All right, that starts to look as a pyspark bug. I have prepared the same test in pure Spark (Scala, spark-shell):

Even though the rowsBetween cannot be applied in Scala, both rank() and lag()/lead() work as I expect when rowsBetween is omitted.