Last active
October 4, 2019 14:15
-
-
Save JoseRFJuniorLLMs/789b9f2b6187da85c14044f9e759389a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from pyspark import SparkConf | |
| from pyspark.sql import SparkSession, functions as F | |
| conf = SparkConf() | |
| # opcional, mas seria bom definir a quantidade de memória RAM que o driver pode usar para | |
| # um valor razoável (em relação ao tamanho do arquivo que queremos ler), para que não recebamos uma exceção do OOM | |
| conf.set('spark.driver.memory', '6G') | |
| # criar uma sessão de faísca(Spark) - nada pode ser feito sem isso: | |
| spark = SparkSession.builder \ | |
| .config(conf=conf) \ | |
| .appName('Homework-App') \ | |
| .getOrCreate() | |
| # spark.read.text retorna um dataframe, mais fácil de manipular e também mais eficiente | |
| # você também pode usar: spark.sparkContext.textFile (''), mas isso retornará RDD [String] | |
| df = spark.read.text('full/path/to/file.txt) | |
| # spark é "preguiçoso" então, nada aconteceu até agora, além da inicialização da sessão | |
| # vamos chamar .show () para ver se realmente lemos o arquivo e como ele é | |
| df.show () | |
| # Agora vamos voltar à tarefa: identificar onde o `big data` é usado. | |
| # Para esta tarefa, adicionamos uma coluna ao quadro de dados e a preenchemos com True quando `big data` é identificado em uma linha | |
| df = df.withColumn('has_big_data', F.when(F.col('value').contains('big data'), True).otherwise(False)) | |
| df.show() | |
| # e a resposta à lição de casa é selecionar as linhas em que a coluna 'has_big_data' é True | |
| df.select('value').where(F.col('has_big_data')==True).show() | |
| df.select('value').where(F.col('has_big_data')==True).count() | |
| # 6 - o número de linhas que contêm este termo | |
| # só para ver que o `big data` está realmente incluído nessas poucas linhas :) | |
| df.select('value').where(F.col('has_big_data')==True).show(100, False) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment