问题描述
所以我在 Palantir Foundry 代码工作簿中运行了下面这个简单的代码,它运行了。现在我想向它传递一个我导入并位于我的图表中的数据集。数据集是一个 pyspark 数据框,其中一列包含 1000 行文本。所以我想用包含多行的 spark 数据集替换 text="some random text"
。
import nltk.tokenize as nt
import nltk
text="Being more Pythonic is good for health."
ss=nt.sent_tokenize(text)
tokenized_sent=[nt.word_tokenize(sent) for sent in ss]
pos_sentences=[nltk.pos_tag(sent) for sent in tokenized_sent]
pos_sentences
解决方法
在您的 python 转换中,您可以将代码包装在 udf 中。 udf 的性能不是很好,但它可以让您准确地编写该代码。即:
def tokenize(text):
ss=nt.sent_tokenize(text)
tokenized_sent=[nt.word_tokenize(sent) for sent in ss]
return [nltk.pos_tag(sent) for sent in tokenized_sent]
tokenize_udf = F.udf(translate,T.StringType())
df.withColumn("result",tokenize_udf(F.col("text")))