在 PYSPARK 中运行收集时出错

2023-11-24

我正在尝试将网站名称与 URL 分开。例如 - 如果 URL 是 www.google.com,则输出应为“google”。我尝试了下面的代码,除了最后一行“websites.collect()”之外,一切正常。

我使用数据框来存储网站名称,然后将其转换为 rdd,并对这些值应用 split 函数以获得所需的输出。

逻辑似乎很好,但我猜我的包配置和安装中存在一些错误。

错误如下所示:-

---------------------------------------------------------------------------
Py4JJavaError                             Traceback (most recent call last)
<ipython-input-11-a88287400951> in <module>()
----> 1 websites.collect()

C:\ProgramData\Anaconda3\lib\site-packages\pyspark\rdd.py in collect(self)
    822         """
    823         with SCCallSiteSync(self.context) as css:
--> 824             port = self.ctx._jvm.PythonRDD.collectAndServe(self._jrdd.rdd())
    825         return list(_load_from_socket(port, self._jrdd_deserializer))
    826 

C:\ProgramData\Anaconda3\lib\site-packages\py4j\java_gateway.py in __call__(self, *args)
   1158         answer = self.gateway_client.send_command(command)
   1159         return_value = get_return_value(
-> 1160             answer, self.gateway_client, self.target_id, self.name)
   1161 
   1162         for temp_arg in temp_args:

C:\ProgramData\Anaconda3\lib\site-packages\pyspark\sql\utils.py in deco(*a, **kw)
     61     def deco(*a, **kw):
     62         try:
---> 63             return f(*a, **kw)
     64         except py4j.protocol.Py4JJavaError as e:
     65             s = e.java_exception.toString()

C:\ProgramData\Anaconda3\lib\site-packages\py4j\protocol.py in get_return_value(answer, gateway_client, target_id, name)
    318                 raise Py4JJavaError(
    319                     "An error occurred while calling {0}{1}{2}.\n".
--> 320                     format(target_id, ".", name), value)
    321             else:
    322                 raise Py4JError(

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: java.lang.IllegalArgumentException
    at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
    at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
    at org.apache.xbean.asm5.ClassReader.<init>(Unknown Source)
    at org.apache.spark.util.ClosureCleaner$.getClassReader(ClosureCleaner.scala:46)
    at org.apache.spark.util.FieldAccessFinder$$anon$3$$anonfun$visitMethodInsn$2.apply(ClosureCleaner.scala:449)
    at org.apache.spark.util.FieldAccessFinder$$anon$3$$anonfun$visitMethodInsn$2.apply(ClosureCleaner.scala:432)
    at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
    at scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:103)
    at scala.collection.mutable.HashMap$$anon$1$$anonfun$foreach$2.apply(HashMap.scala:103)
    at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:230)
    at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40)
    at scala.collection.mutable.HashMap$$anon$1.foreach(HashMap.scala:103)
    at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
    at org.apache.spark.util.FieldAccessFinder$$anon$3.visitMethodInsn(ClosureCleaner.scala:432)
    at org.apache.xbean.asm5.ClassReader.a(Unknown Source)
    at org.apache.xbean.asm5.ClassReader.b(Unknown Source)
    at org.apache.xbean.asm5.ClassReader.accept(Unknown Source)
    at org.apache.xbean.asm5.ClassReader.accept(Unknown Source)
    at org.apache.spark.util.ClosureCleaner$$anonfun$org$apache$spark$util$ClosureCleaner$$clean$14.apply(ClosureCleaner.scala:262)
    at org.apache.spark.util.ClosureCleaner$$anonfun$org$apache$spark$util$ClosureCleaner$$clean$14.apply(ClosureCleaner.scala:261)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at org.apache.spark.util.ClosureCleaner$.org$apache$spark$util$ClosureCleaner$$clean(ClosureCleaner.scala:261)
    at org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:159)
    at org.apache.spark.SparkContext.clean(SparkContext.scala:2292)
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:2066)
    at org.apache.spark.SparkContext.runJob(SparkContext.scala:2092)
    at org.apache.spark.rdd.RDD$$anonfun$collect$1.apply(RDD.scala:939)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
    at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
    at org.apache.spark.rdd.RDD.withScope(RDD.scala:363)
    at org.apache.spark.rdd.RDD.collect(RDD.scala:938)
    at org.apache.spark.api.python.PythonRDD$.collectAndServe(PythonRDD.scala:153)
    at org.apache.spark.api.python.PythonRDD.collectAndServe(PythonRDD.scala)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
    at py4j.Gateway.invoke(Gateway.java:282)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:214)
    at java.base/java.lang.Thread.run(Unknown Source)

CODE:-

from pyspark import SparkConf, SparkContext
conf = (SparkConf()
         .setMaster("local[*]")
         .setAppName("Test")
         .set("spark.executor.memory", "8g")
       )

sc = SparkContext(conf = conf)
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc) 

schemaWebsite = sc.parallelize([
    (0, "www.google.com"), (1, "www.hackerrank.com"),(2, "www.walmart.com/in"),
    (3, "www.amazon.in"),(4, "www.ndtv.com")]).toDF(["id", "ev"])

websites = schemaWebsite.rdd.map(lambda x : x[1].split(".")[1])
websites.collect()

只是为了让@Anubhav Sarangi 对此问题的评论成为一个答案: 我有同样的问题。最初,我安装了 Java SE 10.0.1。但遇到类似的错误。按照@Anubhav Sarangi的建议,我下载并安装了Java SE 开发套件 8u171其中有jdk 1.8并且问题解决了。

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

在 PYSPARK 中运行收集时出错 的相关文章

随机推荐

  • 在 Android 中从一个活动移动到下一个活动

    我正在 Android 中开发一个具有登录屏幕的应用程序 现在我可以成功接收服务器的响应 成功响应后 它应该带我进入下一个活动或课程 在其中显示新的屏幕 活动 为了实现这个目标我应该做什么 在 Android 中 您可以使用 Intents
  • Linux 中的环境变量未使用 load_dotenv() 加载

    我正在尝试制作一个不和谐的机器人 当我尝试使用 load dotenv 加载 env 时 它不起作用 因为它说 Traceback most recent call last File home fanjin Documents Pytho
  • shell 中范围之间的随机数

    如何在 sh bin sh 而不是 bash 中生成 0 60 之间的随机数 这是卫星盒 没有 RANDOM变量和其他商品 cksum od od vAn N4 tu4 我想随机化 cron 作业时间 如果你有 tr head 和 dev
  • `PowerShell.Create()` 返回 null

    添加参考 PowerShellStandard Library 在默认情况下重现 net core项目 using System Management Automation using System Collections ObjectMo
  • 使用 Lion 上的 FSEvents 跟踪文件重命名/删除

    我正在尝试使用 FSEvents 来检测何时从特定文件夹添加 删除文件 目前 我围绕 FSEvents 实现了一个简单的包装器 它工作得很好 我得到了所有事件 但我现在遇到的问题是 当我在 Finder 中重命名文件时 我捕获了 2 个不同
  • 线程同步。为什么这个锁不足以同步线程[重复]

    这个问题在这里已经有答案了 可能的重复 线程同步 锁究竟如何使内存访问变得 正确 这个问题的灵感来自于这个 我们有以下测试课程 class Test private static object ms Lock new object priv
  • FXML 设置 TableView 列调整大小策略

    如何从 FXML 设置 TableView 的调整大小策略 我这样累了 但它不起作用
  • 使用 Homebrew 更新 OS X 上的 OpenSSL

    我使用的是 MacOS X 10 7 5 并且我需要更新的 OpenSSL 版本 因为握手失败 网上有很多教程 我尝试了以下方法 brew install openssl brew link openssl force 然而 它不起作用 o
  • mq_open() - 打开的文件太多

    我正在尝试编写一个客户端和服务器 它们将使用 POSIX 消息队列交换数据 我尝试通过查看在互联网上看到的示例和课程文档来做到这一点 但是 我陷入困境 当我运行它时 我收到 打开文件太多 错误 这是我的代码 Client int main
  • 将整数值范围映射到Python中的颜色

    我有从 0 到 10000 的整数 我想为每个整数映射一种颜色 然后根据整数值 我想检索与整数值对应的颜色的 RGB 等效值 基本上我想在两种或多种颜色之间有插值效果 例如如果颜色是绿色和红色 则绿色具有最小权重 0 红色具有最高权重 10
  • 使用 AJAX 通过 Flask-WTForms 将条目附加到 FieldList

    我使用 Flask WTForms 在 Flask 中制作了一个简单的表单 家长可以在其中注册自己和他的孩子 家长可以通过单击 添加孩子 按钮来注册任意数量的孩子 WTForms 通过使用 FieldList 功能使这变得非常容易实现 但是
  • LOAD DATA INFILE 轻松将 YYYYMMDD 转换为 YYYY-MM-DD?

    您好 我想导入一个 INFILE 但日期的形式为 AADR 20120403 31 43 31 43 31 4 31 4 1100 AAU 20120403 2 64 2 65 2 56 2 65 85700 AAVX 20120403 1
  • 将 mutate_at 有条件地应用于 R 中数据帧中的特定行

    我在 R 中有一个数据框 如下所示 a b c condition 1 4 2 acap 2 3 1 acap 2 4 3 acap 5 6 8 ncap 5 7 6 ncap 8 7 6 ncap 我正在尝试重新编码条件 ncap 的 a
  • C++:在二叉树中插入节点的指针与指针的指针

    我正在创建一个函数来在二叉树中插入一个元素 首先 我在 Visual Studio 2012 上执行了以下操作 void Insert Nodo root int x if root NULL Nodo n new Nodo n gt va
  • 使用 redux useDispatch 时 useEffect 缺少依赖项

    每当使用反应钩子安装我的组件时 我想获取我的类别useEffect而不是在每次重新渲染时 但我不断收到此警告React Hook useEffect has a missing dependency dispatch 这是我的代码 cons
  • Worksheet 类的 ShowAllData 方法失败

    我注意到当自动过滤器已打开时我的 VBA 脚本不起作用 知道这是为什么吗 wbk Activate Set Criteria Sheets Sheet1 Cells i 1 Set rng Sheets Sheet1 Range Cells
  • 如何在上传目录时删除 Chrome 中的警告消息

    使用上传目录时webkitdirectory在 Chrome 中 会出现一条丑陋的警告消息 该消息内容如下 将 数量 个文件上传到此站点 这将上传 目录名称 中的所有文件 仅当您信任该站点时才执行此操作 这是最近在 Chrome 版本 66
  • MSI 不在 C# 中运行

    我正在尝试运行一个MSI使用 Process Start 方法从 C 文件 MSI 文件很好 因为我可以正常运行它 但是当我尝试在某些 C 代码中运行 MSI 文件时 我收到以下错误 这个安装包无法 被打开 验证该包 存在 并且您可以访问它
  • java.lang.NumberFormatException用于将字符串转换为long [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我正在尝试将字符串转换为长字符串 它会抛出NumberFormatException 我不认为这超出了范围long at all 这是要转换的代码 其中count strng
  • 在 PYSPARK 中运行收集时出错

    我正在尝试将网站名称与 URL 分开 例如 如果 URL 是 www google com 则输出应为 google 我尝试了下面的代码 除了最后一行 websites collect 之外 一切正常 我使用数据框来存储网站名称 然后将其转