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.

Dependencias de Apache Phoenix en PySpark

Quiero consultar una tabla de Phoenix desde Spark usando el conector de Spark. En el entorno de Hortonwork solía hacer lo siguiente:

pyspark –jars /usr/hdp/2.6.4.0-91/phoenix/phoenix-spark2.jar,/usr/hdp/2.6.4.0-91/phoenix/phoenix-client.jar,/usr/hdp/2.6.4.0-91/phoenix/phoenix-server.jar

y luego ejecutaba mi código.

Recientemente, al intentar ejecutar lo mismo en Cloudera 7.1.5, no puedo encontrar phoenix-spark2.jar, phoenix-client y phoenix-server. La documentación del conector de Spark, https://docs.cloudera.com/cdp-private-cloud-base/7.1.6/phoenix-access-data/phoenix-access-data.pdf, tampoco especifica una guía. Por favor, indícame qué archivos jar debería usar.

-Ajaz

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hola Ajaz,

    Para consultar una tabla de Phoenix desde Spark utilizando el conector Spark en el entorno de Cloudera 7.1.5, puedes seguir los siguientes pasos:

    1. Primero, descarga los archivos JAR de Phoenix necesarios (phoenix-spark.jar, phoenix-client.jar y phoenix-core.jar) desde el sitio web oficial de Apache Phoenix: http://phoenix.apache.org/download.html
    2. Luego, copia estos archivos JAR a un directorio en tu clúster de Cloudera, por ejemplo, /opt/cloudera/parcels/CDH/jars/phoenix.

    3. A continuación, inicia una sesión de PySpark incluyendo la ruta de estos archivos JAR en la opción “–jars”, así:

      pyspark --jars /opt/cloudera/parcels/CDH/jars/phoenix/phoenix-spark.jar,/opt/cloudera/parcels/CDH/jars/phoenix/phoenix-client.jar,/opt/cloudera/parcels/CDH/jars/phoenix/phoenix-core.jar

      Nota: Reemplaza “/opt/cloudera/parcels/CDH/jars/phoenix” con el directorio real donde copiaste los archivos JAR de Phoenix.

    4. Ahora, puedes utilizar el conector de Phoenix Spark en tu código de PySpark para leer desde o escribir en tablas de Phoenix.

    Aquí tienes un ejemplo de código para leer desde una tabla de Phoenix:

    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder \
        .appName("Ejemplo de lectura con el conector de Phoenix Spark") \
        .getOrCreate()
    
    df = spark.read \
        .format("org.apache.phoenix.spark") \
        .option("table", "tu_tabla") \
        .option("zkUrl", "tu_zookeeper_quorum") \
        .load()
    
    df.show()
    

    Nota: Reemplaza “tu_tabla” con el nombre de la tabla de Phoenix desde la que deseas leer y “tu_zookeeper_quorum” con la URL del quórum de ZooKeeper de tu clúster de Phoenix.

    Espero que esto ayude.

    Saludos cordiales,
    [Tu nombre]

Comments are closed.