Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

148
Visualizações
Cuente el número de palabras en un marco de datos de chispa

¿Cómo podemos encontrar la cantidad de palabras en una columna de un marco de datos de chispa sin usar la función REEMPLAZAR () de SQL? A continuación se muestra el código y la entrada con la que estoy trabajando, pero la función replace () no funciona.

 from pyspark.sql import SparkSession my_spark = SparkSession \ .builder \ .appName("Python Spark SQL example") \ .enableHiveSupport() \ .getOrCreate() parqFileName = 'gs://caserta-pyspark-eval/train.pqt' tuesdayDF = my_spark.read.parquet(parqFileName) tuesdayDF.createOrReplaceTempView("parquetFile") tuesdaycrimes = spark.sql("SELECT LENGTH(Address) - LENGTH(REPLACE(Address, ' ', ''))+1 FROM parquetFile") print(tuesdaycrimes.show()) +-------------------+--------------+--------------------+---------+----------+--------------+--------------------+-----------+---------+ | Dates| Category| Descript|DayOfWeek|PdDistrict| Resolution| Address| X| Y| +-------------------+--------------+--------------------+---------+----------+--------------+--------------------+-----------+---------+ |2015-05-14 03:53:00| WARRANTS| WARRANT ARREST|Wednesday| NORTHERN|ARREST, BOOKED| OAK ST / LAGUNA ST| -122.42589|37.774597| |2015-05-14 03:53:00|OTHER OFFENSES|TRAFFIC VIOLATION...|Wednesday| NORTHERN|ARREST, BOOKED| OAK ST / LAGUNA ST| -122.42589|37.774597| |2015-05-14 03:33:00|OTHER OFFENSES|TRAFFIC VIOLATION...|Wednesday| NORTHERN|ARREST, BOOKED|VANNESS AV / GREE...| -122.42436|37.800415|
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Hay varias formas de contar las palabras usando las funciones de pyspark DataFrame, según lo que esté buscando.

Crear datos de ejemplo

 import pyspark.sql.functions as f data = [ ("2015-05-14 03:53:00", "WARRANT ARREST"), ("2015-05-14 03:53:00", "TRAFFIC VIOLATION"), ("2015-05-14 03:33:00", "TRAFFIC VIOLATION") ] df = sqlCtx.createDataFrame(data, ["Dates", "Description"]) df.show()

En este ejemplo, contaremos las palabras en la columna Description .

Contar en cada fila

Si desea el recuento de palabras en la columna especificada para cada fila, puede crear una nueva columna usando withColumn() y hacer lo siguiente:

  • Use pyspark.sql.functions.split() para dividir la cadena en una lista
  • Use pyspark.sql.functions.size() para contar la longitud de la lista

Por ejemplo:

 df = df.withColumn('wordCount', f.size(f.split(f.col('Description'), ' '))) df.show() #+-------------------+-----------------+---------+ #| Dates| Description|wordCount| #+-------------------+-----------------+---------+ #|2015-05-14 03:53:00| WARRANT ARREST| 2| #|2015-05-14 03:53:00|TRAFFIC VIOLATION| 2| #|2015-05-14 03:33:00|TRAFFIC VIOLATION| 2| #+-------------------+-----------------+---------+

Suma el recuento de palabras en todas las filas

Si desea contar el número total de palabras en la columna en todo el DataFrame, puede usar pyspark.sql.functions.sum() :

 df.select(f.sum('wordCount')).collect() #[Row(sum(wordCount)=6)]

Contar la ocurrencia de cada palabra

Si desea el recuento de cada palabra en todo el DataFrame, puede usar split() y pyspark.sql.function.explode() seguido de groupBy y count() .

 df.withColumn('word', f.explode(f.split(f.col('Description'), ' ')))\ .groupBy('word')\ .count()\ .sort('count', ascending=False)\ .show() #+---------+-----+ #| word|count| #+---------+-----+ #| TRAFFIC| 2| #|VIOLATION| 2| #| WARRANT| 1| #| ARREST| 1| #+---------+-----+
over 4 years ago · Santiago Trujillo Relatório

0

Puede hacerlo simplemente usando split y el size de las funciones de la API de pyspark (a continuación se muestra un ejemplo): -

 sqlContext.createDataFrame([['this is a sample address'],['another address']])\ .select(F.size(F.split(F.col("_1"), " "))).show() Below is Output:- +------------------+ |size(split(_1, ))| +------------------+ | 5| | 2| +------------------+
over 4 years ago · Santiago Trujillo Relatório

0

Puede definir una función udf como

 def splitAndCountUdf(x): return len(x.split(" ")) from pyspark.sql import functions as F countWords = F.udf(splitAndCountUdf, 'int')

y llámelo usando la función .withColumn como

 tuesdayDF.withColumn("wordCount", countWords(tuesdayDF.address))

Y si desea un recuento distinto de palabras, puede cambiar la función udf para incluir el set como

 def splitAndCountUdf(x): return len(set(x.split(" "))) from pyspark.sql import functions as F countWords = F.udf(splitAndCountUdf, 'int')
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda