stopwordsremover输入格式有问题(无法使用但没有报错)

发布于 2022-09-12 00:15:26 字数 3175 浏览 20 评论 0

按照原始数据输入可以正常运行,但是将自己的数据代入时,并没有删除想删除的部分
原始数据

data_list=[[['r', 'z', 'h', 'k', 'p']]\
           ,[['z', 'y', 'x', 'w', 'v', 'u', 't', 's']]\
           ,[['s', 'x', 'o', 'n', 'r']]\
           ,[['x', 'z', 'y', 'm', 't', 's', 'q', 'e']]\
           ,[['z']]\
           ,[['x', 'z', 'y', 'r', 'q', 't', 'p']]]
    data2=spark.createDataFrame(data_list,["items"])
    data2.show()
    print(data2.dtypes)
    data2.printSchema()
    print('***********remover-z************')
    remover = StopWordsRemover(inputCol='items', outputCol='input', stopWords=['z'])
    data_input=remover.transform(data2)
    data_input.show()
    data_input.printSchema()

原始输出结果为:


    +--------------------+
    |               items|
    +--------------------+
    |     [r, z, h, k, p]|
    |[z, y, x, w, v, u...|
    |     [s, x, o, n, r]|
    |[x, z, y, m, t, s...|
    |                 [z]|
    |[x, z, y, r, q, t...|
    +--------------------+

    [('items', 'array<string>')]
    root
    |-- items: array (nullable = true) 
    |    |-- element: string (containsNull = true)
    ***********remover-z************
    +--------------------+--------------------+
    |               items|               input|
    +--------------------+--------------------+
    |     [r, z, h, k, p]|        [r, h, k, p]|
    |[z, y, x, w, v, u...|[y, x, w, v, u, t...|
    |     [s, x, o, n, r]|     [s, x, o, n, r]|
    |[x, z, y, m, t, s...|[x, y, m, t, s, q...|
    |                 [z]|                  []|
    |[x, z, y, r, q, t...|  [x, y, r, q, t, p]|
    +--------------------+--------------------+

    root
    |-- items: array (nullable = true)
    |    |-- element: string (containsNull = true)
    |-- input: array (nullable = true)
    |    |-- element: string (containsNull = true)

我的输入为:

    data_new.show()
    print(data_new.dtypes)
    add_stopwords =['o']
    remover = StopWordsRemover(inputCol='items', outputCol='input', stopWords=['o'])
    data_input=remover.transform(data_new)
    data_input.show()

输出为:


    +---------------+---------------+
    |          items|          input|
    +---------------+---------------+
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,o,c,o,o,e,g]|[o,o,c,o,o,e,g]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    |[o,b,o,d,d,e,o]|[o,b,o,d,d,e,o]|
    +---------------+---------------+

    root
    |-- items: array (nullable = false)
    |    |-- element: string (containsNull = false)

请问这种情况该如何改?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文