Spark 2.0:4 行。 IllegalArgumentException:界限必须为正

2024-05-02

我正在 Amazon EMR 5.0 上的 Spark 2.0 上尝试一个超级简单的测试程序:

from pyspark.sql.types import Row
from pyspark.sql.types import *
import pyspark.sql.functions as spark_functions

schema = StructType([
    StructField("cola", StringType()),
    StructField("colb", IntegerType()),
])

rows = [
    Row("alpha", 1),
    Row("beta", 2),
    Row("gamma", 3),
    Row("delta", 4)
]

data_frame = spark.createDataFrame(rows, schema)

print("count={}".format(data_frame.count()))

data_frame.write.save("s3a://test3/test_data.parquet", mode="overwrite")

print("done")

结果是:

count=4
Py4JJavaError: An error occurred while calling o85.save.
: org.apache.spark.SparkException: Job aborted.
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand$$anonfun$run$1.apply$mcV$sp(InsertIntoHadoopFsRelationCommand.scala:149)
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand$$anonfun$run$1.apply(InsertIntoHadoopFsRelationCommand.scala:115)
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand$$anonfun$run$1.apply(InsertIntoHadoopFsRelationCommand.scala:115)
    at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:57)
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.run(InsertIntoHadoopFsRelationCommand.scala:115)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult$lzycompute(commands.scala:60)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.sideEffectResult(commands.scala:58)
    at org.apache.spark.sql.execution.command.ExecutedCommandExec.doExecute(commands.scala:74)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:115)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:115)
    at org.apache.spark.sql.execution.SparkPlan$$anonfun$executeQuery$1.apply(SparkPlan.scala:136)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
    at org.apache.spark.sql.execution.SparkPlan.executeQuery(SparkPlan.scala:133)
    at org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:114)
    at org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(QueryExecution.scala:86)
    at org.apache.spark.sql.execution.QueryExecution.toRdd(QueryExecution.scala:86)
    at org.apache.spark.sql.execution.datasources.DataSource.write(DataSource.scala:487)
    at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:211)
    at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:237)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
    at py4j.Gateway.invoke(Gateway.java:280)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:128)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:211)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: bound must be positive
    at java.util.Random.nextInt(Random.java:388)
    at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.confChanged(LocalDirAllocator.java:305)
    at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:344)
    at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.createTmpFileForWrite(LocalDirAllocator.java:416)
    at org.apache.hadoop.fs.LocalDirAllocator.createTmpFileForWrite(LocalDirAllocator.java:198)
    at org.apache.hadoop.fs.s3a.S3AOutputStream.<init>(S3AOutputStream.java:87)
    at org.apache.hadoop.fs.s3a.S3AFileSystem.create(S3AFileSystem.java:421)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:913)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:894)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:791)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:780)
    at org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter.commitJob(FileOutputCommitter.java:336)
    at org.apache.parquet.hadoop.ParquetOutputCommitter.commitJob(ParquetOutputCommitter.java:46)
    at org.apache.spark.sql.execution.datasources.BaseWriterContainer.commitJob(WriterContainer.scala:222)
    at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand$$anonfun$run$1.apply$mcV$sp(InsertIntoHadoopFsRelationCommand.scala:144)
    ... 29 more
(<class 'py4j.protocol.Py4JJavaError'>, Py4JJavaError(u'An error occurred while calling o85.save.\n', JavaObject id=o86), <traceback object at 0x7fa65dec5368>)

遇到了同样的问题,经过一番混乱之后,似乎 s3:// 和 s3n:// 可以工作。但它们比 s3a:// 慢很多...我能让 s3a:// 工作的唯一方法是设置一个缓冲区目录,这样它就不会直接从内存进行快速复制 -

hadoopConf=sc._jsc.hadoopConfiguration()
hadoopConf.set("fs.s3a.buffer.dir", "/home/hadoop,/tmp")  

不幸的是,启用该功能后,它并不比普通 s3/s3n 快多少!

编辑:添加这个也可以消除错误,意识到我假设它正在快速复制。不幸的是没有更快... hadoopConf.set("fs.s3a.fast.upload", "true")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 2.0:4 行。 IllegalArgumentException:界限必须为正 的相关文章

随机推荐

  • 为什么表上主键的存在可以显着提高列存储索引的性能?

    我试图了解列存储索引可以在表上提供什么样的性能提升 该表大约有 370 万行 11 列 并存储为堆 即没有主键 我在表上创建列存储索引并运行以下查询 SELECT Area Family AVG Global Sales Value AS
  • Seaborn 中同一地块上的多个图表

    我正在尝试为某些数据绘制条形样式 factorplot 然后在其上绘制常规点样式 factorplot 以适合该数据 因此 对于数据图 我可以简单地执行以下操作 sns factorplot x x y yData data dataFra
  • 从另一个视图控制器调用一个视图控制器的方法

    我在 OneViewController h 中声明了一个方法 someMethod interface OneViewController UIView tempView void someMethod end 并在 OneViewCon
  • 如何获取 LinkedHashMap 的 keyIterator?

    通过查看Sun的LinkedHashMap的源代码 我发现有一个名为Key Iterator的私有类 我想使用它 我怎样才能获得访问权限 您可以通过致电获取 myMap keySet iterator 你甚至不需要知道它的存在 它只是实现的
  • GCM 推送通知延迟

    我们有一个应用程序 Ruby on Rails 向 Android 应用程序发送推送通知 我们面临着 GCM 的问题 其中一些通知要么被延迟 要么从未收到 考虑到这些通知是发送给员工而不是最终用户 我的问题是 在没有任何延迟或丢失的情况下发
  • “TransformAppSettings”任务意外失败

    我有一个 NET Core 3 Blazor 服务器端 应用程序 我最近从预览版 5 版本升级到了 NET Core 3 0 1 预览版 6 版本 当我在本地构建并运行它时 它工作正常 但是当尝试将其发布到文件系统文件夹 在框架相关模式下
  • 使用 vb.net 在 MS Access 中插入和更新值

    我已经检查了该网站上的大部分论坛 但没有得到我的解决方案 我的问题是将数据从 vb net 插入到 MS Access 但我无法做到 它没有显示任何错误 但也没有在我的表中插入值 我正在使用非常简单的代码 Imports System Da
  • 模板化无分支 int 最大/最小函数

    我正在尝试编写一个无分支函数来返回两个整数的 MAX 或 MIN 而不求助于 if 或 使用通常的技术 https stackoverflow com questions 227383 how do i programmatically r
  • 向 ModelForm 添加额外字段

    我正在向 Django ModelForm 添加一个额外的字段 如下所示 class form forms ModelForm extra field forms CharField label Name of Institution cl
  • 运算符重载中的成员二元运算符和非成员二元运算符

    在尝试学习运算符重载时 我阅读了 C Primer 中的以下陈述 坦白说 我不太明白这些言论想要传递什么信息 这些示例包括定义成员二元运算符和非成员二元运算符 使用时有什么区别吗 通常我们将算术和关系运算符定义为非成员函数 并将赋值运算符定
  • 在哪里可以找到旧版本的 Android NDK? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道在哪里可以找到旧版本的 Android NDK 我们的代码不是用 r6 构建的 肯定有某个地方
  • 如何在 Cmake 生成的 ALL_BUILD 和 ZERO_CHECK Visual Studio 2013 项目中将 unicode 设置为字符集?

    我目前正在使用 CMake 创建一堆 Visual Studio 2013 项目 并且它可以工作 但是 自动创建的 ZERO CHECK 和 ALL BUILD 项目默认设置为使用 MBCS 尽管我希望它们使用 Unicode 字符集 我确
  • NameError:名称“raw_input”未定义[重复]

    这个问题在这里已经有答案了 我是一名七年级程序员 所以我可能在这个程序中遗漏了很多东西 但是对于我的编码俱乐部 我的老师要求我们猜数字游戏 我对这个主题的了解非常有限 因为我只上过四节课 不管怎样 当我在 Python IDLE 3 5 中
  • 在编译时检测 typedef(模板元编程)

    我目前正在做一些模板元编程 就我而言 我可以处理任何 可迭代 类型 即任何类型typedef foo const iterator以同样的方式存在 我试图为此使用新的 C 11 模板元编程 但是我找不到检测某种类型是否丢失的方法 因为我还需
  • Delphi 窗体在显示时总是会触发 OnResize 吗?

    如果我创建一个新的 Delphi 表单 挂钩其 OnResize 事件并运行该应用程序 则在显示窗口之前会触发 OnResize 我不知道对于任何窗口来说 这种情况是否总是会发生 对于熟悉 Windows API 的人来说 我已将其追溯到
  • 如何在本地重现 Jest“网络错误”-浮动错误

    当我偶尔在管道上运行测试时 我会收到不同文件的 网络错误 因为axios要求 尽管有时我根本没有收到错误 但由于某种原因 无论我做什么 我都无法在本地得到该错误 我使用相同的节点版本v12 16 1 我尝试将 testTimeout 减少到
  • 如何根据给定的过滤器返回并获取对象属性的总和?

    我有以下对象 var data Name ABC Dept First FY 2016 Quarter 1 Month April Total 100 Name ABC Dept Second FY 2017 Quarter 2 Month
  • 隐藏/显示切换具有相同类名的单独 div

    我有一个 UL 列表 每个 LI 都有一个隐藏的 DIV 以及一个显示隐藏 DIV 的 更多信息 链接 但是 单击此按钮也会显示所有其他 LI 的隐藏 DIV 我怎样才能只隐藏 显示 LI 中的 DIV 而不显示所有其他隐藏的 DIV 如果
  • 连接两个表并保存到第三个sql

    我想加入两张桌子 TableA wordA primarykey countA abc 25 abcd 29 abcde 45 TableB wordB primarykey countB ab
  • Spark 2.0:4 行。 IllegalArgumentException:界限必须为正

    我正在 Amazon EMR 5 0 上的 Spark 2 0 上尝试一个超级简单的测试程序 from pyspark sql types import Row from pyspark sql types import import py