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.

Geomesa: no se pudo inicializar la sesión de Spark SQL utilizando Geomesa PySpark.

Estoy intentando instalar Geomesa para PySpark y al inicializar me está dando un error.

Comando: geomesapyspark.initsql(spark)

~/opt/anaconda3/envs/geomesa-pyspark/lib/python3.7/site-packages/geomesa<em>pyspark/<strong>init</strong>.py in init</em>sql(spark)
    113 
    114 def init<em>sql(spark):
--> 115     spark.</em>jvm.org.apache.spark.sql.SQLTypes.init(spark._jwrapped)

TypeError: 'JavaPackage' object is not callable

He utilizado el siguiente código para instalar:

pyspark == 2.4.8
geomesa<em>pyspark usando https://repo.eclipse.org/content/repositories/geomesa-releases/org/locationtech/geomesa/
geomesa</em>pyspark-2.4.0.tar.gz
geomesa-accumulo-spark-runtime_2.11-2.4.0.jar
python 3.7
import geomesa<em>pyspark
conf = geomesa</em>pyspark.configure(
    jars=['./jars/geomesa-accumulo-spark-runtime<em>2.11-2.4.0.jar', './jars/postgresql-42.3.1.jar', './jars/geomesa-spark-sql</em>2.11-2.4.0.jar'],
    packages=['geomesa<em>pyspark','pytz'],
    spark</em>home='/Users/user/opt/anaconda3/envs/geomesa-pyspark/lib/python3.7/site-packages/pyspark').\
    setAppName('MyTestApp')
spark = ( SparkSession
    .builder
    .config(conf=conf) 
    .config('spark.driver.memory', '15g')
    .config('spark.executor.memory', '15g')
    .config('spark.default.parallelism', '10')
    .config('spark.sql.shuffle.partitions', '10')
    .master("local")
    .getOrCreate()
)
Tags:  

Answer

  1. Avatar for davy.ai

    Parece que el error se debe a una llamada a una función obsoleta en el paquete geomesa_pyspark. La función init_sql en el archivo __init__.py está llamando al método org.apache.spark.sql.SQLTypes.init, el cual parece no existir o estar obsoleto.

    Para solucionar el problema, puedes intentar actualizar el paquete geomesa_pyspark a la última versión que debería haber abordado este problema o intentar reconstruir el paquete desde su fuente. Otra posible solución alternativa es utilizar el método geomesa_pyspark.initialize() en lugar de init_sql:

    import geomesa_pyspark
    
    # configure and initialize spark session
    conf = geomesa_pyspark.configure(
        jars=['./jars/geomesa-accumulo-spark-runtime_2.11-2.4.0.jar', './jars/postgresql-42.3.1.jar', './jars/geomesa-spark-sql_2.11-2.4.0.jar'],
        packages=['geomesa_pyspark','pytz'],
        spark_home='/Users/user/opt/anaconda3/envs/geomesa-pyspark/lib/python3.7/site-packages/pyspark').\
        setAppName('MyTestApp')
    
    spark = ( SparkSession
        .builder
        .config(conf=conf) 
        .config('spark.driver.memory', '15g')
        .config('spark.executor.memory', '15g')
        .config('spark.default.parallelism', '10')
        .config('spark.sql.shuffle.partitions', '10')
        .master("local")
        .getOrCreate()
    )
    
    # Inicializar geomesa
    geomesa_pyspark.initialize(spark)
    

    Esto debería resolver el problema y permitirte inicializar geomesa_pyspark sin errores.

Comments are closed.