#pyspark #aws-glue #tokenize #huggingface-transformers
#пыспарк #aws-клей #токенизировать #обнимашки-трансформеры
Вопрос:
Я пытаюсь использовать токенизаторы huggingface в PySpark env и сталкиваюсь с
TypeError: self.c_tagger cannot be converted to a Python object for pickling
Пример кода
from pyspark.sql import SparkSession from awsglue.transforms import * from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.dynamicframe import DynamicFrame from pyspark.sql.functions import udf,col from pyspark.sql.types import ArrayType,StringType import pkgutil from transformers import MecabTokenizer glueContext = GlueContext(SparkContext.getOrCreate()) mecab_word_tokenizer = MecabTokenizer(do_lower_case=False) df = glueContext.create_dynamic_frame.from_catalog( database="db", table_name="table_name", transformation_ctx="read0" ) def tokenize_column(rec): rec["tokenized_text"] = mecab_word_tokenizer.tokenize(rec["text"]) return rec df_new = Map.apply(frame = df, f = tokenize_column)
Помимо использования встроенной функции Map с AWS Glue, я попытался преобразовать динамический кадр в фрейм данных Spark и использовать UDF с колонкой, но преобладает та же ошибка.
Возможно ли это вообще (причина реализации mecab на основе C?) FWIW Я не получаю ошибку при использовании токенизатора в spark env с некоторыми фиктивными данными