使用Spark NLP的DocumentAssembler处理Array<String>时遇类型转换错误
问题分析与解决
你的错误源于构造DataFrame时,text列的类型是Array<ArrayDocumentAssembler仅支持单层的String或Array<String>列,因此触发了类型转换错误。
修正后的代码示例
如果要处理单个字符串:
data = spark.createDataFrame([["Spark NLP is an open-source text processing library."]]).toDF("text") documentAssembler = DocumentAssembler().setInputCol("text").setOutputCol("document") result = documentAssembler.transform(data) result.select("document").show(truncate=False)
如果确实需要处理Array<String>类型的列(多条文本):
data = spark.createDataFrame([[["First sentence", "Second sentence"]]]).toDF("text") documentAssembler = DocumentAssembler().setInputCol("text").setOutputCol("document") result = documentAssembler.transform(data) result.select("document").show(truncate=False)
补充说明
当输入列是Array<String>时,DocumentAssembler会将数组中的每个字符串分别转换为独立的Document对象;如果输入是单个String,则生成一个对应Document。
内容的提问来源于stack exchange,提问作者Rory
相关产品推荐
相关产品推荐

