Присоединяйтесь к Lambda в PysparkPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Присоединяйтесь к Lambda в Pyspark

Сообщение Anonymous »

Предположим, что у меня есть следующий диапазон данных статей.text_data = [
(1, "I hav a dreem that one day"),
(2, "Ths is a test of the emergncy broadcast systm"),
(3, "Speling errors are commn in som text"),
]
text_df = spark.createDataFrame(text_data, "id: int, article: string")
< /code>
и Dataframe неверных в корреста-карт.dict_data = [
("hav", "have"),
("dreem", "dream"),
("Ths", "This"),
("emergncy", "emergency"),
("systm", "system"),
("Speling", "Spelling"),
("commn", "common"),
("som", "some"),
]
dict_df = spark.createDataFrame(dict_data, "misspelled: string, correct: string")
< /code>
Я пытался найти количество неверных слов в статьях, учитывая, что все неправильные слова были представлены в картировании. Я сделал это двумя способами, один использует левое соединение и группу, в то время как другие используют функции более высокого порядка. Это код. < /P>
  • Использование соединения и группы, чтобы найти количество неправильных и правильных слов < /li>
    < /ol>
    (
    text_df
    .select(
    "id"
    , F.explode(F.split(F.col("article"), " ")).alias("word")
    )
    .join(
    dict_df
    , F.col('word') == dict_df['misspelled']
    , 'left'
    )
    .select(
    "id"
    , "word"
    , dict_df['correct']
    )
    .groupBy("id")
    .agg(
    F.count(F.col('word')).alias('Total')
    , F.count(F.when(F.col('correct').isNull(), 'isCorrect')).alias('Correct')
    , F.count(F.col('correct')).alias('Incorrect')
    )
    .show()
    )

    '''
    Output
    +---+-----+-------+---------+
    | id|Total|Correct|Incorrect|
    +---+-----+-------+---------+
    | 1| 7| 5| 2|
    | 2| 9| 6| 3|
    | 3| 7| 4| 3|
    +---+-----+-------+---------+
    '''
    < /code>

    Использование функций более высокого порядка < /li>
    < /ol>
    dict_data_2 = [[{
    "hav": "have",
    "dreem": "dream",
    "Ths": "This",
    "emergncy": "emergency",
    "systm": "system",
    "Speling": "Spelling",
    "commn": "common",
    "som": "some"
    }]]

    dict_df_2 = spark.createDataFrame(dict_data_2, "incorrect_to_correct_mapping: map")
    text_df = spark.createDataFrame(text_data, "id: int, article: string")
    (
    text_df
    .join(
    dict_df_2
    , how = 'cross'
    )
    .withColumns({
    'words': F.split(F.col('article'), ' ')
    , 'incorrect':
    F.filter(
    F.col('words')
    , lambda word: F.array_contains(F.map_keys('incorrect_to_correct_mapping'), word)
    )
    , 'correct':
    F.filter(
    F.col('words')
    , lambda word: ~F.array_contains(F.map_keys('incorrect_to_correct_mapping'), word)
    )
    })
    .select(
    "id"
    , F.array_size("words").alias("Total")
    , F.array_size("incorrect").alias("Incorrect")
    , F.array_size("correct").alias("Correct")
    )
    .show()
    )

    '''
    Output
    +---+-----+---------+-------+
    | id|Total|Incorrect|Correct|
    +---+-----+---------+-------+
    | 1| 7| 2| 5|
    | 2| 9| 3| 6|
    | 3| 7| 3| 4|
    +---+-----+---------+-------+
    '''
    < /code>
    У меня есть два вопроса -< /p>

    Какой из них будет быстрее, чем другой < /li>
    Какой из них предпочтительнее, когда увеличивается размер любой статьи или картирования? (Я предполагаю, что можно использовать первый, потому что, если размер картирования увеличится, будет трудно удерживать всю карту в каждой строке)


Подробнее здесь: https://stackoverflow.com/questions/796 ... in-pyspark
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Pyspark Присоединяйтесь при условии A, если нет, то Присоединяйтесь при условии B и т. д.
    Гость » » в форуме Python
    0 Ответы
    74 Просмотры
    Последнее сообщение Гость
  • Присоединяйтесь к Lambda в Pyspark
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Присоединяйтесь к Lambda в Pyspark
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Присоединяйтесь к Lambda в Pyspark
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • AWS Lambda (.NET) + SQS: ошибка преобразования полезных данных JSON события Lambda в строку
    Anonymous » » в форуме C#
    0 Ответы
    87 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»