es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ERROR mientras se trabajaba con Bunsen para la transformación de datos FHIR a spark: py4j.protocol.Py4JJavaError: Se produjo un error al llamar a o37.extractEntry.

Estoy aprendiendo Bunsen https://engineering.cerner.com/bunsen/0.5.10-SNAPSHOT/index.html para manejar datos FHIR con Pyspark. La carpeta bundles contiene un paquete fhir que es una colección de recursos como objetos json. Descargué todos los requisitos necesarios, como el módulo bunsen y el archivo jar para pyspark, y ejecuté estos comandos:

>>> import pyspark
>>> from bunsen.r4.bundles import load_from_directory, extract_entry
>>> bundles = load_from_directory(spark, "C:\Users\MoemenEbdelli\Desktop\oumaima\bundles")
>>> observations = extract_entry(spark, bundles, 'Patient').cache()

El último comando generó un ERROR:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\bunsen\python\bunsen\r4\bundles.py", line 101, in extract_entry
    bundles.extractEntry(sparkSession._jsparkSession, javaRDD, resourceName, jArray),
  File "C:\spark\spark-3.2.0-bin-hadoop3.2\python\lib\py4j-0.10.9.2-src.zip\py4j\java_gateway.py", line 1309, in __call__
  File "C:\spark\spark-3.2.0-bin-hadoop3.2\python\pyspark\sql\utils.py", line 111, in deco
    return f(*a, **kw)
  File "C:\spark\spark-3.2.0-bin-hadoop3.2\python\lib\py4j-0.10.9.2-src.zip\py4j\protocol.py", line 326, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o37.extractEntry.
: java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.expressions.objects.Invoke$.apply$default$5()Z
        at com.cerner.bunsen.EncoderBuilder.com$cerner$bunsen$EncoderBuilder$$childToExpr(EncoderBuilder.scala:259)
        at com.cerner.bunsen.EncoderBuilder$$anonfun$6.apply(EncoderBuilder.scala:307)
        at com.cerner.bunsen.EncoderBuilder$$anonfun$6.apply(EncoderBuilder.scala:307)
        at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:293)
        at scala.collection.Iterator.foreach(Iterator.scala:943)
        at scala.collection.Iterator.foreach$(Iterator.scala:943)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
        at scala.collection.IterableLike.foreach(IterableLike.scala:74)
        at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
        at scala.collection.TraversableLike.flatMap(TraversableLike.scala:293)
        at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:290)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:108)
        at com.cerner.bunsen.EncoderBuilder.com$cerner$bunsen$EncoderBuilder$$serializer(EncoderBuilder.scala:307)
        at com.cerner.bunsen.EncoderBuilder$.of(EncoderBuilder.scala:53)
        at com.cerner.bunsen.EncoderBuilder.of(EncoderBuilder.scala)
        at com.cerner.bunsen.FhirEncoders.of(FhirEncoders.java:213)
        at com.cerner.bunsen.FhirEncoders.of(FhirEncoders.java:262)
        at com.cerner.bunsen.Bundles.extractEntry(Bundles.java:291)
        at com.cerner.bunsen.Bundles.extractEntry(Bundles.java:235)
        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: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.ClientServerConnection.waitForCommands(ClientServerConnection.java:182)
        at py4j.ClientServerConnection.run(ClientServerConnection.java:106)
        at java.lang.Thread.run(Thread.java:748)
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    A partir del mensaje de error, parece que hay una incompatibilidad entre la versión del módulo Bunsen y la versión de PySpark. El método apply$default$5() no se encuentra, lo que podría haber sido desaprobado en una versión posterior de PySpark.

    Aquí hay una posible solución:

    1. Asegúrese de que el módulo Bunsen y la versión de PySpark que está utilizando sean compatibles.
    2. Verifique que ha instalado todas las dependencias correctamente, incluyendo el módulo PySpark y Bunsen.

    3. Intente ejecutar el mismo comando con una versión diferente de PySpark.

    4. Si ejecutar con una versión diferente de PySpark no funciona, entonces es posible que deba actualizar su código para usar una versión compatible de Bunsen o PySpark dependiendo de los otros módulos que esté usando.

    Si ninguna de estas soluciones resuelve el problema, es posible que deba buscar ayuda de los desarrolladores de Bunsen o los foros de la comunidad de PySpark.

Comments are closed.