Pyspark 从数据框创建临时视图

Pyspark create temp view from dataframe

我正在尝试通读 spark.sql 一个巨大的 csv。 我从 CSV 创建了一个数据框,数据框似乎创建正确。 我阅读了模式,我可以执行 select 和过滤。 我想创建一个临时视图以使用 sql 执行相同的研究,我对此更满意,但临时视图似乎仅在 csv header 上创建。 我在哪里犯了错误? 谢谢

>>> df = spark.read.options(header=True,inferSchema=True,delimiter=";").csv("./elenco_dm_tutti_csv_formato_opendata_UltimaVersione.csv")
>>> df.printSchema()
root
 |-- TIPO: integer (nullable = true)
 |-- PROGRESSIVO_DM_ASS: integer (nullable = true)
 |-- DATA_PRIMA_PUBBLICAZIONE: string (nullable = true)
 |-- DM_RIFERIMENTO: integer (nullable = true)
 |-- GRUPPO_DM_SIMILI: integer (nullable = true)
 |-- ISCRIZIONE_REPERTORIO: string (nullable = true)
 |-- INIZIO_VALIDITA: string (nullable = true)
 |-- FINE_VALIDITA: string (nullable = true)
 |-- FABBRICANTE_ASSEMBLATORE: string (nullable = true)
 |-- CODICE_FISCALE: string (nullable = true)
 |-- PARTITA_IVA_VATNUMBER: string (nullable = true)
 |-- CODICE_CATALOGO_FABBR_ASS: string (nullable = true)
 |-- DENOMINAZIONE_COMMERCIALE: string (nullable = true)
 |-- CLASSIFICAZIONE_CND: string (nullable = true)
 |-- DESCRIZIONE_CND: string (nullable = true)
 |-- DATAFINE_COMMERCIO: string (nullable = true)

>>> df.count()
1653697
>>> df.createOrReplaceTempView("mask")
>>> spark.sql("select count(*) from mask")
DataFrame[count(1): bigint]

像 sql() 这样的 Spark 操作默认情况下不处理任何内容。您需要添加 .show() 或 .collect() 才能获得结果。