问题标签 [spark-koalas]
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.
python-3.x - Groupby 操作失败 - 加入多个 DataFrames 仅支持加入索引
我正在使用 Spark Koalas 探索和分析大型产品数据集。我想做的一件事是对产品编号进行排序,并根据其编号添加具有产品排名的列。这是一个示例数据集:
看起来像这样:
为了对产品编号进行排序和排名,我使用natsort。不幸的是,koalas 数据框 sort_values 方法不接受像 pandas 这样的关键参数,我可以利用它并将natsort_keygen()
其作为关键函数传递,所以我正在执行以下操作:
- 我正在创建一个包含产品编号及其排名的新数据框
- 将这个新数据框与原始数据框连接起来,如下所示:
以及生成的数据框,虽然我不喜欢列 prod_number 移动到第一列并且原始索引丢失,但排名列已成功添加:
现在,如果我将此示例扩展到多个客户端和产品,则由于某种原因连接失败。所以,如果我正在处理一个看起来像这样的数据框:
如果我定义一个创建排名并返回连接数据框的函数:
我在分组数据帧上调用这个函数如下:
它失败并出现以下错误:
我不太确定它为什么会抛出这个错误以及如何解决它。我用熊猫测试了同样的方法,它奏效了。我不确定这是否与丢失原始数据框的索引有关,但我非常感谢您对此提供任何帮助。
apache-spark - pyspark koalas 上的 pandas 中的分布式索引无法按预期工作
pyspark 上的 pandas 中有 3 种不同类型的默认索引。我无法复制他们所说的行为:
设置测试:
- 序列类型
- 数据将在同一个节点上收集(数据框应该只有 1 个分区?)
- 默认索引为 [0,1,2,3,...] (按顺序单调递增 1)
测试:
问题:为什么分区数不是 1,因为当默认索引设置为“序列”时,所有数据都必须收集在单个节点上。
- 分布式序列
- 它以分布式方式计算和生成索引,但它需要另一个额外的 Spark 作业来在内部生成全局序列。它也不保证结果的自然顺序。一般来说,它会成为一个不断增加的数字。
测试:
问题:分发到所有 8 个核心的数据帧是预期的行为,但是索引不应该按照它们的顺序排列。似乎这种行为也sequence
只是类型默认索引。
- 分散式
- “分布式”索引几乎没有性能损失,并且总是创建单调递增的数字。如果只需要索引作为每行的唯一编号或行的顺序,则此索引类型将是最佳选择。然而,数字有一个不确定的差距
测试:
问题:这也sequence
只是类型行为。生成的索引是从 1 到任何地方的有序序列。它应该是单调递增的数字,具有不确定的差距。
有人可以帮我澄清一下我没有正确理解的内容,以及所有三种类型的默认索引的确切预期行为是什么?
python - 使用 Pandas 与 Koalas notna() 的不同结果
我已经为我的 dtype 而不是 str 使用“string”而搞砸了,但有一些下游影响。这是在一个非常大的数据集上,所以理想情况下我不会使用 mask 函数。那么为什么 pandas 和 koalas 数据框/函数的行为会有所不同呢?
apache-spark - 如何在 pyspark groupby 上将 UDF 与 pandas 一起使用?
我正在努力在 pyspark 上的 pandas 上使用 pandas UDF。你能帮我理解这是如何实现的吗?以下是我的尝试:
这导致我难以理解的异常:
我尝试使用udf
而不是pandas_udf
但是,同样的异常也失败了
我也尝试仅在一列上使用带有 UDF 的 groupby ,但这也失败了:
输出:
我猜这不是真的。如果我不使用 UDF 并使用已定义的函数,如“min”、“max”,我可以使用 groupby。
我尝试在不按列指定不同 UDF 的情况下使用,但也失败了:
输出:
featuretools - 索引名称当前必须完全匹配
我正在尝试在 entitySet 中添加考拉数据框。这是它的代码
在运行此程序时,我遇到错误索引名称当前必须完全匹配。我已经仔细检查了所有字段名称、索引唯一性等。不确定这里可能是什么错误原因。
python - 错误执行器:步骤 9.0 (TID 427) 中的任务 0.0 异常 ExitCodeException exitCode=-1073741515:如何解决问题?
首先,我的环境配置如下:window10 / spark 2.4.8 / python 3.7.11 / jvm 1.8.0_331 / hadoop 2.7.3
我想得到一个带有考拉包的 csv 文件。但是,当我这样做时dataframe.to_parquet()
,会出现以下问题。
我怎么解决这个问题?
- 我的英语不好,所以我用翻译来写这篇文章。*
python-3.x - Apache Spark Cluster Aware 库列表
全部,
我是Apache Spark V3.1.2的新手。我们正在将 Python 代码移植到Pyspark (v3.1.2)代码中,并且一些代码失败了。
后来,我遇到了Koalas,它是集群感知的,它是Pandas的替代品,我们正在重写那部分。同样,我们也遇到了 NLTK 的问题。
是否有文档包含 Pyspark 的 Apache Spark 集群感知库及其 python 等效库的列表?
如果有人能指出我正确的方向,那将是非常有帮助的。
请注意,我们有带有 CU13 的 SQLServer 2019 BDC。此可用软件包列表在链接中列出。
谢谢,
格拉吉
pyspark - min() 函数不适用于日期类型的 koalas.DataFrame 列
我创建了以下数据框:
输出[0]:
日期1 | 日期2 | |
---|---|---|
0 | 2021-11-01 | 2020-11-01 |
1 | 2021-11-02 | 2020-11-02 |
2 | 2021-11-03 | 2020-11-03 |
3 | 2021-11-04 | 2020-11-04 |
4 | 2021-11-05 | 2020-11-05 |
5 | 2021-11-06 | 2020-11-06 |
6 | 2021-11-07 | 2020-11-07 |
7 | 2021-11-08 | 2020-11-08 |
8 | 2021-11-09 | 2020-11-09 |
9 | 2021-11-10 | 2020-11-10 |
当试图获得最小值时,Date1
我得到了正确的结果:
输出[1]:
此外,当尝试获取每行的最小值时,会返回正确的结果:
输出[2]:
但是,在列上使用相同的函数会失败:
输出[3]:
有谁知道这是为什么以及是否有一种优雅的方法?
pyspark - TF-IDF 的两个向量之间的 PySpark Cosine Similarity 使用 Spark 上的 SparseMatrix + koala 或 Pandas API 计算余弦相似度
我确实尝试在pyspark和pandas_on_spark ( koalas ) 中实现此名称匹配 余弦相似度方法/函数get_matches_df并努力优化此函数(我确实尝试避免为数据帧转换toPandas()因为会重载驱动程序所以我想优化此函数并对其进行扩展,因此基本上批处理方法将像本示例一样完美运行,或者使用 pandas_udfs 或采用 1 个向量和 2 个数据帧的简单 UDF:
这是我正在优化的功能(我转换并创建了自定义tfidfvectorizer,缩放余弦,pyspark sparsematrix 生成器的所有其他功能,我剩下要优化的就是这部分(因为使用 loc 并且不确定如何工作,我不介意让它表现得像熊猫,也就是驱动程序的所有数据帧,但理想情况下是
apache-spark - 了解 pyspark 中的罐子
我是新手,我的理解是:
- jar 就像一堆 java 代码文件
- 我安装的每个内部使用 spark(或 pyspark)的库都有自己的 jar 文件,驱动程序和执行程序都需要这些 jar 文件,以便它们执行与用户交互的包 API 调用。这些 jar 文件就像那些 API 调用的后端代码
问题:
- 为什么需要这些 jar 文件。为什么在 python 中拥有所有代码还不够?(我想答案是最初 Spark 是用 scala 编写的,它在那里将其依赖项作为 jar 分发。因此不必再次创建该代码库山,python 库只需通过一些转换 java 代码的转换器在 python 解释器中调用该 javacode到等效的python代码。请如果我理解正确)
spark.driver.extraClassPath
您可以在通过和创建 spark 上下文时指定这些 jar 文件的位置spark.executor.extraClassPath
。虽然我猜这些都是过时的参数。指定这些 jar 文件位置的最新方法是什么?- 我在哪里可以找到我安装的每个库的这些 jar?例如突触。关于包的 jar 文件所在位置的一般想法是什么?为什么这些库不明确它们的特定 jar 文件将在哪里?
我知道我在这里可能没有意义,我上面提到的部分只是我的预感,那就是它一定会发生。
那么,你能帮我理解一下这个关于罐子的整个业务,以及如何找到和指定它们吗?