问题标签 [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.

0 投票
0 回答
108 浏览

python-3.x - Groupby 操作失败 - 加入多个 DataFrames 仅支持加入索引

我正在使用 Spark Koalas 探索和分析大型产品数据集。我想做的一件事是对产品编号进行排序,并根据其编号添加具有产品排名的列。这是一个示例数据集:

看起来像这样:

为了对产品编号进行排序和排名,我使用natsort。不幸的是,koalas 数据框 sort_values 方法不接受像 pandas 这样的关键参数,我可以利用它并将natsort_keygen()其作为关键函数传递,所以我正在执行以下操作:

  1. 我正在创建一个包含产品编号及其排名的新数据框
  2. 将这个新数据框与原始数据框连接起来,如下所示:

以及生成的数据框,虽然我不喜欢列 prod_number 移动到第一列并且原始索引丢失,但排名列已成功添加:

现在,如果我将此示例扩展到多个客户端和产品,则由于某种原因连接失败。所以,如果我正在处理一个看起来像这样的数据框:

如果我定义一个创建排名并返回连接数据框的函数:

我在分组数据帧上调用这个函数如下:

它失败并出现以下错误:

我不太确定它为什么会抛出这个错误以及如何解决它。我用熊猫测试了同样的方法,它奏效了。我不确定这是否与丢失原始数据框的索引有关,但我非常感谢您对此提供任何帮助。

0 投票
0 回答
75 浏览

apache-spark - pyspark koalas 上的 pandas 中的分布式索引无法按预期工作

pyspark 上的 pandas 中有 3 种不同类型的默认索引。我无法复制他们所说的行为:

设置测试:

  1. 序列类型
  • 数据将在同一个节点上收集(数据框应该只有 1 个分区?)
  • 默认索引为 [0,1,2,3,...] (按顺序单调递增 1)

测试:

问题:为什么分区数不是 1,因为当默认索引设置为“序列”时,所有数据都必须收集在单个节点上。

  1. 分布式序列
  • 它以分布式方式计算和生成索引,但它需要另一个额外的 Spark 作业来在内部生成全局序列。它也不保证结果的自然顺序。一般来说,它会成为一个不断增加的数字。

测试:

问题:分发到所有 8 个核心的数据帧是预期的行为,但是索引不应该按照它们的顺序排列。似乎这种行为也sequence只是类型默认索引。

  1. 分散式
  • “分布式”索引几乎没有性能损失,并且总是创建单调递增的数字。如果只需要索引作为每行的唯一编号或行的顺序,则此索引类型将是最佳选择。然而,数字有一个不确定的差距

测试:

问题:这也sequence只是类型行为。生成的索引是从 1 到任何地方的有序序列。它应该是单调递增的数字,具有不确定的差距。

有人可以帮我澄清一下我没有正确理解的内容,以及所有三种类型的默认索引的确切预期行为是什么?

0 投票
0 回答
37 浏览

python - 使用 Pandas 与 Koalas notna() 的不同结果

我已经为我的 dtype 而不是 str 使用“string”而搞砸了,但有一些下游影响。这是在一个非常大的数据集上,所以理想情况下我不会使用 mask 函数。那么为什么 pandas 和 koalas 数据框/函数的行为会有所不同呢?

0 投票
1 回答
168 浏览

apache-spark - 如何在 pyspark groupby 上将 UDF 与 pandas 一起使用?

我正在努力在 pyspark 上的 pandas 上使用 pandas UDF。你能帮我理解这是如何实现的吗?以下是我的尝试:

这导致我难以理解的异常:

我尝试使用udf而不是pandas_udf但是,同样的异常也失败了

我也尝试仅在一列上使用带有 UDF 的 groupby ,但这也失败了:

输出:

我猜这不是真的。如果我不使用 UDF 并使用已定义的函数,如“min”、“max”,我可以使用 groupby。

我尝试在不按列指定不同 UDF 的情况下使用,但也失败了:

输出:

0 投票
0 回答
60 浏览

featuretools - 索引名称当前必须完全匹配

我正在尝试在 entitySet 中添加考拉数据框。这是它的代码

在运行此程序时,我遇到错误索引名称当前必须完全匹配。我已经仔细检查了所有字段名称、索引唯一性等。不确定这里可能是什么错误原因。

0 投票
0 回答
26 浏览

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(),会出现以下问题。

我怎么解决这个问题?

  • 我的英语不好,所以我用翻译来写这篇文章。*
0 投票
0 回答
19 浏览

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。此可用软件包列表在链接中列出。

谢谢,
格拉吉

0 投票
2 回答
54 浏览

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]:

有谁知道这是为什么以及是否有一种优雅的方法?

0 投票
0 回答
52 浏览

pyspark - TF-IDF 的两个向量之间的 PySpark Cosine Similarity 使用 Spark 上的 SparseMatrix + koala 或 Pandas API 计算余弦相似度

我确实尝试在pysparkpandas_on_spark ( koalas ) 中实现此名称匹配 余弦相似度方法/函数get_matches_df并努力优化此函数(我确实尝试避免为数据帧转换toPandas()因为会重载驱动程序所以我想优化此函数并对其进行扩展,因此基本上批处理方法将像本示例一样完美运行,或者使用 pandas_udfs 或采用 1 个向量和 2 个数据帧的简单 UDF:

这是我正在优化的功能(我转换并创建了自定义tfidfvectorizer缩放余弦pyspark sparsematrix 生成器的所有其他功能,我剩下要优化的就是这部分(因为使用 loc 并且不确定如何工作,我不介意让它表现得像熊猫,也就是驱动程序的所有数据帧,但理想情况下是

0 投票
1 回答
123 浏览

apache-spark - 了解 pyspark 中的罐子

我是新手,我的理解是:

  1. jar 就像一堆 java 代码文件
  2. 我安装的每个内部使用 spark(或 pyspark)的库都有自己的 jar 文件,驱动程序和执行程序都需要这些 jar 文件,以便它们执行与用户交互的包 API 调用。这些 jar 文件就像那些 API 调用的后端代码

问题:

  1. 为什么需要这些 jar 文件。为什么在 python 中拥有所有代码还不够?(我想答案是最初 Spark 是用 scala 编写的,它在那里将其依赖项作为 jar 分发。因此不必再次创建该代码库山,python 库只需通过一些转换 java 代码的转换器在 python 解释器中调用该 javacode到等效的python代码。请如果我理解正确)
  2. spark.driver.extraClassPath您可以在通过和创建 spark 上下文时指定这些 jar 文件的位置spark.executor.extraClassPath。虽然我猜这些都是过时的参数。指定这些 jar 文件位置的最新方法是什么?
  3. 我在哪里可以找到我安装的每个库的这些 jar?例如突触。关于包的 jar 文件所在位置的一般想法是什么?为什么这些库不明确它们的特定 jar 文件将在哪里?

我知道我在这里可能没有意义,我上面提到的部分只是我的预感,那就是它一定会发生。

那么,你能帮我理解一下这个关于罐子的整个业务,以及如何找到和指定它们吗?