Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, aprenderá a leer datos y metadatos, y a evaluar medidas en modelos semánticos mediante el conector nativo de vínculo semántico de Spark en Microsoft Fabric. También aprenderá a escribir datos que los modelos semánticos pueden usar.
Requisitos previos
Obtenga una suscripción a Microsoft Fabric. También puede registrarse para obtener una evaluación gratuita de Microsoft Fabric.
Inicie sesión en Microsoft Fabric.
Use el conmutador de experiencia en la parte inferior izquierda de la página principal para cambiar a Fabric.
Vaya a la experiencia de Ciencia de datos en Microsoft Fabric.
- En el panel izquierdo, seleccione Cargas de trabajo.
- Seleccione Data Science.
Cree un nuevo cuaderno, para copiar/pegar código en las celdas.
-
Para Spark 3.4 y versiones posteriores, el vínculo semántico está disponible en el entorno de ejecución predeterminado al usar Fabric y no es necesario instalarlo. Si usa Spark 3.3 o más adelante, o si desea actualizar a la versión más reciente de Semantic Link, puede ejecutar el comando :
python %pip install -U semantic-link
Descargue el modelo semántico Customer Profitability Sample.pbix desde la carpeta datasets del repositorio fabric-samples, y guarde el modelo semántico localmente.
Carga del modelo semántico en el área de trabajo
En este artículo, se usa el modelo semántico Customer Profitability Sample.pbix. Este modelo semántico hace referencia a los materiales de marketing de una empresa y contiene datos sobre productos, clientes y los ingresos correspondientes de varias unidades de negocio.
- En el panel izquierdo, seleccione Áreas de trabajo y luego seleccione el nombre de su área de trabajo para abrirla.
- Seleccione Importar>Informe o Informe paginado>Desde este equipo y seleccione el modelo semántico Customer Profitability Sample.pbix.
Una vez finalizada la carga, el área de trabajo tiene tres artefactos nuevos: un informe de Power BI, un panel y un modelo semántico denominado Ejemplo de rentabilidad del cliente. Utiliza este modelo semántico para los pasos descritos en este artículo.
Lectura y escritura de datos mediante Spark en Python, R, SQL y Scala
De forma predeterminada, el área de trabajo que se usa para acceder a los modelos semánticos es:
- el área de trabajo del almacén de lago asociado o
- el área de trabajo del cuaderno, si no hay ningún almacén de lago asociado.
Microsoft Fabric expone todas las tablas de todos los modelos semánticos en el área de trabajo como tablas de Spark. Todos los comandos de Spark SQL se pueden ejecutar en Python, R y Scala. El conector nativo de vínculo semántico de Spark admite la inserción de predicados de Spark en el motor de Power BI.
Sugerencia
Dado que las tablas y medidas de Power BI se exponen como tablas de Spark normales, se pueden combinar con otros orígenes de datos de Spark en una sola consulta.
Enumere las tablas de todos los modelos semánticos del área de trabajo mediante PySpark.
df = spark.sql("SHOW TABLES FROM pbi") display(df)
Recupere los datos de la tabla Customer del modelo semántico Ejemplo de rentabilidad del cliente mediante SparkR.
Nota:
La recuperación de tablas está sujeta a limitaciones estrictas (consulte Limitaciones de lectura) y los resultados podrían estar incompletos. Use la delegación de agregados para reducir la cantidad de datos transferidos. Los agregados admitidos son: COUNT, SUM, AVG, MIN y MAX.
%%sparkr df = sql("SELECT * FROM pbi.`Customer Profitability Sample`.Customer") display(df)
Las medidas de Power BI están disponibles mediante la tabla virtual _Metrics. La consulta siguiente calcula los ingresos totales y el presupuesto de ingresos por región y sector.
%%sql SELECT `Customer[Country/Region]`, `Industry[Industry]`, AVG(`Total Revenue`), AVG(`Revenue Budget`) FROM pbi.`Customer Profitability Sample`.`_Metrics` WHERE `Customer[State]` in ('CA', 'WA') GROUP BY `Customer[Country/Region]`, `Industry[Industry]`
Inspeccione las medidas y dimensiones disponibles mediante un esquema de Spark.
spark.table("pbi.`Customer Profitability Sample`._Metrics").printSchema()
Guarde los datos en un almacén de lago como tabla delta.
delta_table_path = "<your delta table path>" #fill in your delta table path df.write.format("delta").mode("overwrite").save(delta_table_path)
Limitaciones de acceso de lectura
Las API de acceso de lectura tienen las siguientes limitaciones:
- Las consultas que duran más de 10 segundos en el Servicio de Análisis no se admiten (indicación dentro de Spark: "java.net.SocketTimeoutException: error de comunicación del servicio PowerBI")
- El acceso a tablas de Power BI mediante Spark SQL está sujeto a las limitaciones de back-end de Power BI.
- El empuje de predicado para las consultas de Spark _Metrics se limita a una sola expresión IN y requiere al menos dos elementos. Las expresiones IN adicionales y los predicados no admitidos se evalúan en Spark después de la transferencia de datos.
- La delegación de predicados de las tablas de Power BI a las que se accede mediante Spark SQL no admite las expresiones siguientes:
- La sesión de Spark debe reiniciarse para que los nuevos modelos semánticos sean accesibles en Spark SQL.