问题标签 [pyspark-dataframes]

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

python - pyspark 将 spark 数据帧作为单个分区的 csv 写入 stringio 用于 ftp

我想将 spark 数据帧作为单个分区 csv 写入 stringIO。然后应该使用 ftp 将这个单独分区的 csv 发送到另一台服务器。

以下行似乎不起作用:

输出是以下错误:

我也试过了df.coalesce(1).write.csv(file_buffer,mode="overwrite", header=True)。但是,这会返回相同的错误。顺便说一句,我主要可以使用上述方法写入 S3。提前谢谢了!

0 投票
2 回答
477 浏览

pyspark - Pyspark:如何查找前 5 行值并将其转换为 1 并将其余所有值转换为 0?

我有一个数据框,我需要在每行中找到最多 5 个值,仅将这些值转换为 1,然后全部为 0,同时保持数据框结构,即列名应保持不变

我尝试使用 toLocalIterator,然后将每一行转换为一个列表,然后将前 5 个转换为值 1。但是当我在大型数据集上运行代码时,它给了我一个 java.lang.outOfMemoryError。在查看日志时,我发现提交了一个非常大的任务(大约 25000KB),而最大推荐大小为 100KB

有没有更好的方法来查找前 5 个值并将其转换为某个值(在这种情况下为 1)并将全部设为 0,这将占用更少的内存

编辑1:

例如,如果我有这 10 列和 5 行作为输入

这就是我想要的输出

如您所见,我想在每行中找到前(最大)5 个值,将它们转换为 1,将其余值转换为 0,同时保持结构,即行和列

这就是我正在使用的(这给了我 outOfMemoryError)

0 投票
1 回答
97 浏览

pandas - 如何根据另一列值将一列分成多个?

我需要根据 python/pyspark 中的另一列值将一列拆分为 4。我尝试根据代码过滤它并加入多个df。有没有更好的方法来做到这一点?

0 投票
2 回答
1861 浏览

pyspark - 比较两个数据帧的行以找到匹配的列数 1

我有 2 个具有相同架构的数据帧,我需要比较数据帧的行并保留两个数据帧中至少有一列值为 1 的行数

现在我正在制作一个行列表,然后比较这两个列表以查找即使一个值在两个列表中都相等并且等于 1

但是在这里,当我在一个巨大的数据集上尝试它时,函数 rdd.tolocalIterator 给了我一个堆空间错误。例如:这是第一个数据帧

这是第二个数据框

这里第 9,11,17,18 行至少有一列具有相同的值,并且该值为 1,所以这里的计数 = 4

这可以以任何优化的方式完成,谢谢。

0 投票
1 回答
489 浏览

python - How to determine what are the columns I need since ApplyMapping is'nt case sensitive?

I'm updating a Pyspark script with a new Database model and I've encountered some problems calling/updating columns since PySpark apparently brings all columns in uppercase but when I use ApplyMapping it is not case sensitive BUT when I join(By left) with another table it is case sensitive and I end up with multiple columns with the same name but one of them in uppercase and the other one in lowercase and I want to use SelectFields function.

I've tried the exact same name (Case sensitive) of the columns but it always brings the same.

I've tried printing the schema but the only difference is only the case.

.....

......

0 投票
0 回答
64 浏览

pyspark - 按数组中的某些记录分组(pyspark)

我想以这样一种方式对数据进行分组,即对于特定记录,每个数组值也用于为该记录分组

我只能按名称分组。我无法弄清楚如何做到这一点。

我试过以下查询;

以下是数据框;

我期待以下输出;

0 投票
1 回答
316 浏览

python - PySpark 错误:StructType 不能接受类型中的对象 0

我的数据文件与 Graph Edges 相关。每行的格式为(src node & dest node)。这是我的架构定义。 eschema = StructType([StructField("src", StringType(), True), StructField("dst", StringType(), True)]) 我试图阅读该行,用分隔符(',')将其拆分并将每个元素转换为一个 int。但这以某种方式失败了。

运行此程序时,我收到错误 StructType can not accept object 0 in type <type 'int'> 我正在使用 Python 2.7,Spark > 2.0。分割线后,对象的类型是 Unicode 而不是字符串,这会有什么不同。如何解决这个问题。任何建议都会有很大帮助。谢谢

0 投票
1 回答
327 浏览

pyspark - 如何展平每个 id 包含多行的 pyspark 数据帧?

我有一个 pyspark 数据框,其中包含两个 id 列idid2. 每个id都准确地重复了n几次。所有id' 都有相同的id2' 集合。我正在尝试id根据id2.

这是一个解释我要实现的目标的示例,我的数据框如下所示:

所需的输出如下表:

所以,基本上,对于每一个独特的id和每一列col,我都会有n新的列col_1,......对于每个n id2值。

任何帮助,将不胜感激!

0 投票
1 回答
47 浏览

pyspark - Pyspark 中的 GroupBy 操作

我有一个数据框,我在其中根据纬度和经度进行了半正弦距离计算。我想找到 min.distance、id 和 store_code。

数据框看起来像 -

0 投票
1 回答
33 浏览

pyspark - 百分比计算并分配给同一数据框中的新列

我有如下火花数据框:

我正在尝试按日期计算成功/失败的百分比并将结果添加到相同的 pyspark 数据框中。在创建多个中间表/数据框后,我只能按组计算成功率或失败率。我们如何在不创建新的中间数据帧的情况下使用相同的单个数据帧?

预期输出: