- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用 pandas 1.1.5 和 pyarrow 2.0.0 运行 pyspark3 时出现以下错误:
Spark 代码:
import pyarrow
import pandas as pd
df = pd.DataFrame({'col1' : [1,2,3], 'col2': [4,5,6]})
df_sp = spark.createDataFrame(df)
df_sp.cache().count()
schema = df_sp.schema
def dummy_udf(data):
return data
res = df_sp.groupby('col1').applyInPandas(dummy_udf, schema=schema)
print(res.cache().count())
print(res.toPandas())
异常:
21/09/17 07:28:10 ERROR util.Utils: Uncaught exception in thread stdout writer for python3
java.lang.NoSuchMethodError: com.google.flatbuffers.FlatBufferBuilder.createString(Ljava/lang/CharSequence;)I
at org.apache.arrow.vector.types.pojo.Field.getField(Field.java:204)
at org.apache.arrow.vector.types.pojo.Schema.getSchema(Schema.java:178)
at org.apache.arrow.vector.ipc.message.MessageSerializer.serializeMetadata(MessageSerializer.java:187)
at org.apache.arrow.vector.ipc.message.MessageSerializer.serialize(MessageSerializer.java:165)
at org.apache.arrow.vector.ipc.ArrowWriter.ensureStarted(ArrowWriter.java:159)
at org.apache.arrow.vector.ipc.ArrowWriter.start(ArrowWriter.java:112)
at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.$anonfun$writeIteratorToStream$1(ArrowPythonRunner.scala:86)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1439)
at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.writeIteratorToStream(ArrowPythonRunner.scala:103)
at org.apache.spark.api.python.BasePythonRunner$WriterThread.$anonfun$run$1(PythonRunner.scala:397)
at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1996)
at org.apache.spark.api.python.BasePythonRunner$WriterThread.run(PythonRunner.scala:232)
21/09/17 07:28:10 ERROR util.SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[stdout writer for python3,5,main]
java.lang.NoSuchMethodError: com.google.flatbuffers.FlatBufferBuilder.createString(Ljava/lang/CharSequence;)I
at org.apache.arrow.vector.types.pojo.Field.getField(Field.java:204)
at org.apache.arrow.vector.types.pojo.Schema.getSchema(Schema.java:178)
at org.apache.arrow.vector.ipc.message.MessageSerializer.serializeMetadata(MessageSerializer.java:187)
at org.apache.arrow.vector.ipc.message.MessageSerializer.serialize(MessageSerializer.java:165)
at org.apache.arrow.vector.ipc.ArrowWriter.ensureStarted(ArrowWriter.java:159)
at org.apache.arrow.vector.ipc.ArrowWriter.start(ArrowWriter.java:112)
at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.$anonfun$writeIteratorToStream$1(ArrowPythonRunner.scala:86)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1439)
at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.writeIteratorToStream(ArrowPythonRunner.scala:103)
at org.apache.spark.api.python.BasePythonRunner$WriterThread.$anonfun$run$1(PythonRunner.scala:397)
at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1996)
at org.apache.spark.api.python.BasePythonRunner$WriterThread.run(PythonRunner.scala:232)
21/09/17 07:28:10 WARN storage.BlockManager: Putting block rdd_25_69 failed due to exception org.apache.spark.SparkException: Python worker exited unexpectedly (crashed).
21/09/17 07:28:10 INFO memory.MemoryStore: MemoryStore cleared
21/09/17 07:28:10 INFO storage.BlockManager: BlockManager stopped
21/09/17 07:28:10 INFO util.ShutdownHookManager: Shutdown hook called
最佳答案
在检查 FlatBufferBuilder.java 中的 createString() 方法实现时类,它有两种方法,一种是接受 CharSequence,另一种是接受 ByteBuffer 作为参数。
public int createString(CharSequence s) {
}
public int createString(ByteBuffer s) {
}
检查 Field.java 中的 getField() 方法实现时类,这里传递的是 String 值。
public class Field {
private final String name;
public int getField(FlatBufferBuilder builder) {
int nameOffset = name == null ? -1 : builder.createString(name);
}
}
要解决此问题,我们需要将 CharSequence 或 ByteBuffer 作为参数传递给 getField() 方法。
解决方案:
public int getField(FlatBufferBuilder builder) {
java.nio.ByteBuffer bb = java.nio.ByteBuffer.wrap(name.getBytes());
int nameOffset = name == null ? -1 : builder.createString(bb);
.......
}
关于pandas - java.lang.NoSuchMethodError : com. google.flatbuffers.FlatBufferBuilder.createString(Ljava/lang/CharSequence;)我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69236212/
假设我有以下 Flatbuffers 架构文件: union WeaponProperties { sword: PSword, axe: PAxe, mace:
我正在考虑使用 flatbuffers 的序列化 struct 作为键值存储中的键。这是我想在 rocksdb 中用作键的 struct 示例。 struct Foo { foo_id: int6
我们有以下场景: 我们正在仅允许静态内存分配 的环境中构建 FlatBuffers 应用程序。 我们传入的 FlatBuffers 包含软件更新图像,这些图像比我们在处理单元上的整个可用 RAM 还要
FlatBuffer 是否允许将二进制 fbs 文件与 JSON 相互转换(当然模式是已知的)? 我的想法是在 FlatBuffer 中定义管道和过滤器架构的结构模式。 FlatBuffer 文件也将
有没有办法将 JSON 模式转换为 Flatbuffer 模式? 这里的用例是用户可以创建 JSON 模式,但我正在寻找一种将 JSON 模式转换为 Flatbuffer 的方法。 示例:输入 {
我是 flatbuffer 的新手,我想知道是否可以完全(不是 const*)访问 flatbuffers::Vector 中的数据。看看下面的例子,我想窃取 img2::mem::data 的所有权
我引用了一些 examples我正在用 server 为我的系统建模和 client例子,我觉得我很亲近。 StarBuffer.fbs: 表 StarBuffer { 半径:双; 质量:双; 体积:
为后代发布我的作品。在用 C++ 完成我的最后一个示例后意识到我实际上需要一直用 C 来完成它(太棒了,对吧?)。作为一名 Java 程序员,这两次迭代都花费了我相当多的精力,我认为那里的许多示例代码
我有一个 3 层嵌套的 Java POJO,在模式文件中看起来像这样: struct FPathSegment { originIata:ushort; destinationIata
我正在检查 Flatbuffers 以实现通信协议(protocol)。当收到一条消息时,在我的例子中它可能包含许多不同的表。如果我理解正确,在 Flatbuffers 中实现此目的的方法是使用一个“
如果两个对象的模式中的表从相似的数据类型开始,是否有任何方法可以使用 flatbuffer 验证器验证其中具有 flatbuffer 结构的 bytearray? 示例模式: table AddTas
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我的 C++ 应用程序的当前工作如下: 1.它涉及启动另一个进程并使用windows共享内存在两个进程之间进行通信。 2.数据在一个进程中序列化,在另一个进程中反序列化。但是,数据类型也可能根据用户输
我正在编写一个使用 Google FlatBuffers 的 NodeJs 应用程序。 我在我的 macbook pro 上安装了 flatc 并编译了以下架构: 命名空间 MyAlcoholist;
我最近一直在研究 FlatBuffers 库。我正在寻找评估它以用于我的项目。看着flatbuffers.h ,我想知道是否违反了strict-aliasing rule如果它确实考虑了严格的别名,有
我正在尝试使用 FlatBuffers 来存储 OpenStreetMap 数据。所以,这将是 50GB。 由于通常所有内容都保存在内存中,怎么可能(如果有的话)按顺序将数据写入文件? 我觉得这不是
我对 C++ 和 Google 中的文件流有基本的了解 FlatBuffers . Schema文件很简单,同样是创建缓冲区和读取从缓冲区指针。我不明白的是如何将多个缓冲区保存到一个二进制文件中,然后
我有一个使用谷歌 FlatBuffers 的 nodejs 应用程序。 饮料模式的 fbs 文件: namespace MyAlcoholist; table Drink { drink_type_n
问题 在尝试访问缓冲区的一部分时,flatbuffers 生成的服务器文件反复出现崩溃(紧急情况:运行时错误: slice 边界超出范围)(使用 flatbuffers 创建),其中包含从一个客户端流
我正在使用 node.js 制作在线游戏,并尝试在游戏服务器上保存游戏重播。我正在使用 FlatBuffers 来序列化客户端-服务器通信的数据,并且我认为将游戏的状态逐帧保存在文件中会很酷。 我在
我是一名优秀的程序员,十分优秀!