问题标签 [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 投票
1 回答
10281 浏览

amazon-web-services - 使用 pyspark (spark 2.4) 从 S3 读取 csv 作为 spark 数据帧

我想使用 pyspark 从 s3 (s3://test-bucket/testkey.csv) 读取一个 csv 文件作为 spark 数据帧。我的集群在 spark 2.4 上运行。

我不需要考虑任何 infer_schema,凭据 aot。并且 csv 文件不能作为粘合表进行爬网。

您能否在此处粘贴基于 spark 会话并转换为 csv 到 spark 数据帧的 pyspark 代码?

非常感谢提前和最好的问候

0 投票
2 回答
587 浏览

apache-spark - 加入 Dataframe 的相同列后,Drop 功能无法正常工作

我在加入两个数据框 A、B 时遇到了同样的问题。

例如:

当我尝试像上面那样删除重复列时,此查询不会删除 df_b 的 col1。相反,当我尝试删除 df_a 的 col1 时,它能够删除 df_a 的 col1。

任何人都可以谈谈这个。

注意:我在我的项目中尝试了相同的方法,该项目有 200 多个列并显示相同的问题。有时,如果我们有很少的列,但如果我们有更多的列,这个 drop 函数就可以正常工作。

pyspark中的左外连接后删除功能不起作用

0 投票
0 回答
42 浏览

python - 持续性能降低的机器学习模型

PySpark在我的 PC ( ) 上用样本数据建立了一个初步的 ML ( ) 模型,Windows准确率约为 70%。在磁盘上坚持后model binary,我正在从不同的 jupyter notebook 读取它,准确度接近 70%。现在,如果我在我们的MapR/Unix集群model binary(即使使用完整的数据集,我也遇到了同样的问题(仅供参考)。

由于集群具有 Unix 操作系统,我尝试在 docker 容器(Unix)中训练-持久-测试模型,但没有问题。问题仅在于集群。

从那时起,我一直在摸索可能导致此问题的原因以及如何解决它。请帮忙。

编辑:

这是一个分类问题,我用过pyspark.ml.classification.RandomForestClassifier.

为了保持模型,我只是使用标准设置:

model.write().overwrite().save(model_path)

并加载模型:

model = pyspark.ml.classification.RandomForestClassificationModel().load(model_path)

我已经在模型中使用了StringIndexer,OneHotEncoder等,并将它们保存在磁盘上,以便在另一个 jupyter 笔记本中使用它们(与主模型相同)。

编辑:

Python:3.x
火花:2.3.1

0 投票
1 回答
69 浏览

sql - Python中的子查询

我正在尝试使用子查询对多个表运行匹配并将不匹配的记录移动到新表。

我已经编写了 SQL 子查询,但我面临的唯一问题是性能,它需要大量时间来处理。

0 投票
1 回答
64 浏览

pyspark - 在 pyspark 中添加具有主题内排序交互日的列

我有一个包含多年用户交互数据的大型 pyspark 数据框。有很多列,但对这个问题有用的三个列是useridinteraction_dateinteraction_timestamp。假设表中有给定用户的多个条目。

我需要编写一个函数来添加一个列,该列将指示表中给定客户的最新观察到的交互之前的天数。例如,对于输入表

example_table_1

我想添加一个从该用户最近的交互日期开始计数的列(例如,最近的交互日期是 1,下一个最近的交互日期是 2,等等):

期望输出表

任何人都可以引导我走向正确的方式来做到这一点吗?

0 投票
0 回答
94 浏览

pyspark - Pyspark 数据框未正确分组

我已经成功运行了几个月的应用程序。最近它开始失败,因为一个接收 pyspark 数据帧、对其进行分组并输出响应的方法以某种方式输出了一个损坏的数据帧。

这是当一切都失败时我正在做的示例代码:

如果我 print print(pyspark_df_in.head(1)),我正确地得到了我的数据集的第一行。按几个维度分组并打印print(pyspark_df_out.head(2))后,出现以下错误。我在尝试对这个新的按数据集分组的新数据集做任何事情时遇到了类似的错误(我知道分组依据应该会产生数据,因为我已经确定了它)。

关于我的环境的信息:

  • Spark 上下文版本 = 2.4.3
  • Python 版本 = 3.7
  • 操作系统 = Linux CentOS 7

有没有人遇到这个问题或有任何想法我可以调试/修复它?

0 投票
3 回答
809 浏览

python - 如何将多个列名重命名为单列?

我有一个包含列 [col1, col2, col3 .... col9] 的表。我想在python中将所有列数据合并为一列作为col?

0 投票
3 回答
1083 浏览

apache-spark - 在pyspark中将字符串列表转换为二进制列表

我有一个这样的数据框

我想将每一行与默认列表进行比较,这样如果值存在,则分配 1 否则 0

因此我的预期输出是这个

我可以在 python 中做到这一点,但不知道如何做到这一点pyspark

0 投票
0 回答
140 浏览

apache-spark - 在 Pyspark 中使用 REST API 的 python 请求包的替代方法是什么?

python和pyspark的新手。

我已经使用python的请求包通过'get'方法从具有REST API的应用程序中检索数据,该方法提供json数据的响应,然后将其读入pandas数据帧。

我现在正在尝试使用 Pyspark 迁移 Spark 的代码。

想知道是否有任何替代 python 请求包的火花。

或者任何必须遵循的方式。

我仍然可以使用现有的 python 代码并将捕获数据的 pandas 数据帧更改为 pyspark 数据帧,但我相信这不会有效。

需要一些关于如何在 Pyspark 中使用应用程序的 rest api 的建议。

谢谢您的帮助!

0 投票
1 回答
877 浏览

apache-spark - pyspark:返回所有单元格匹配正则表达式的列

我有一个包含多列的 spark 数据框,每列包含一个字符串。

例如输入: +--------------+--------------+--------------+--------------+ | c1| c2 | c3| c4| +--------------+--------------+--------------+--------------+ |11 - 12 - 1993| 4 | 4 | 2014 | 8 - 7 - 2013 | null | |12 / 6 / 1965 | 8 - 6 - 2013 | date missing |11 - 12 - 1993| |10 / 5 / 2001 | 7 - 11 - 2011| 4 | 5 | 2015 | 10 / 5 / 2001| +--------------+--------------+--------------+--------------+

我需要返回所有值与特定正则表达式模式匹配的列。

在这个例子中,我必须返回所有值都是有效日期的列。也就是说,在这种情况下,应返回 C1 和 C2 列中的所有值都有一个有效日期(无论其格式如何)。

例如输出 +--------------+--------------+ | c1| c2 | +--------------+--------------+ |11 - 12 - 1993| 4 | 4 | 2014 | |12 / 6 / 1965 | 8 - 6 - 2013 | |10 / 5 / 2001 | 7 - 11 - 2011| +--------------+--------------+

我有正则表达式。最好的方法是什么?我想找出最有效的方法来做到这一点。