问题标签 [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.
apache-spark - Spark sql 在纱线集群模式下抛出 java.lang.OutOfMemoryError 但在纱线客户端模式下工作
我有一个简单的配置单元查询,它在使用 pyspark shell 的纱线客户端模式下工作正常,当我在纱线集群模式下运行它时,它会抛出以下错误。
集群信息:Hadoop 2.4、Spark 1.4.0-hadoop2.4、hive 0.13.1 该脚本从 hive 表中获取 10 列,并进行一些转换并将其写入文件。
完整的堆栈跟踪:
pandas - 使用 toPandas() 方法创建的数据框是否分布在 spark 集群中?
我正在通过阅读 CSV
现在 Pdf 是分布在 spark 集群中还是驻留在主机环境中?
python - 如何将 numpy.array 作为新列添加到 pyspark.SQL DataFrame?
这是创建 pyspark.sql DataFrame 的代码
所以 sparkdf 看起来像
现在我想添加一个 numpy 数组(甚至是一个列表)作为新列
但是标准的方式
失败。可能 udf 是要走的路,但我不知道如何创建一个 udf,为每个 DataFrame 行分配一个不同的值,即遍历 new_col。我查看了其他 pyspark 和 pyspark.sql 但找不到解决方案。另外我需要留在 pyspark.sql 中,所以不是 scala 解决方案。谢谢!
python - pyspark数据框,groupby和计算列的方差
我想对 pyspark 数据框进行分组并计算特定列的方差。对于平均而言,这很容易,可以像这样完成
但是对于方差,函数子模块中似乎没有任何聚合函数(我也想知道为什么,因为这是一个很常见的操作)
python - Pyspark 将 long 更改为 int
我将 Pyspark 1.2.1 与 Hive 一起使用。(升级不会立即发生)。
我遇到的问题是,当我从 Hive 表中选择并添加索引时,pyspark 将 long 值更改为 ints,因此我最终得到了一个临时表,其中包含 Long 类型的列,但值类型为 Integer。(见下面的代码)。
我的问题是:我怎样才能(a)在不将 long 更改为 int 的情况下执行索引的合并(参见代码);或 (b) 以其他方式添加索引以避免该问题;或(c)随机化表列而不需要加入?
我要解决的根本问题是我想随机化配置单元表中某些列的顺序,并将其写入新表。这是为了使数据不再可识别个人身份。我这样做是通过向原始表和随机列添加递增索引,然后加入该索引来实现的。
该表如下所示:
代码是:
在没有更好的解决方案的情况下,我将在 python 代码中强制受影响的列长类型。这……不太好。
python - 在 PySpark 中加入多个列
我想加入两个具有共同列名的 DataFrame。
我的数据框如下:
(我故意使用具有不同名称的相同 DataFrame)
我查看了 Spark 的 JIRA 问题 7197,他们解决了如何执行此连接(这与 PySpark 文档不一致)。但是,他们提出的方法会产生重复的列:
我想得到一个键没有出现两次的结果。
我可以用一列做到这一点:
但是,相同的语法不适用于这种加入方法并引发错误。
我想得到结果:
我想知道这怎么可能
cassandra - 查询 cassandra 以转换为数据帧时出现 Pyspark 错误
执行命令时出现以下错误:
python - 为什么pyspark sql没有返回值
我创建了一个我试图查询的 spark RDD 表,但结果不是预期的值。知道出了什么问题。
模式被编码在一个字符串中。
将 SchemaRDD 注册为表。
SQL 可以在已注册为表的 SchemaRDD 上运行。**
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,
我有以下错误
非常感谢帮助。
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.