ich meine Reise fange mit PySpark und ich habe in einem Punkt für ex .: Ich habe Code wie folgt fest: (Ich nahm es von https://spark.apache.org/docs/2.1.0/ml-features.html)PySpark: Wörter Mapping von Tokenizer mit
from pyspark.ml.feature import Tokenizer, RegexTokenizer
from pyspark.sql.functions import col, udf
from pyspark.sql.types import IntegerType
sentenceDataFrame = spark.createDataFrame([
(0, "Hi I heard about Spark"),
(1, "I wish Java could use case classes"),
(2, "Logistic,regression,models,are,neat")
], ["id", "sentence"])
tokenizer = Tokenizer(inputCol="sentence", outputCol="words")
regexTokenizer = RegexTokenizer(inputCol="sentence", outputCol="words", pattern="\\W")
# alternatively, pattern="\\w+", gaps(False)
countTokens = udf(lambda words: len(words), IntegerType())
tokenized = tokenizer.transform(sentenceDataFrame)
tokenized.select("sentence", "words")\
.withColumn("tokens", countTokens(col("words"))).show(truncate=False)
regexTokenized = regexTokenizer.transform(sentenceDataFrame)
regexTokenized.select("sentence", "words") \
.withColumn("tokens", countTokens(col("words"))).show(truncate=False)
Und ich füge etwas wie folgt aus:
test = sqlContext.createDataFrame([
(0, "spark"),
(1, "java"),
(2, "i")
], ["id", "word"])
Ausgang ist:
id |sentence |words |tokens|
+---+-----------------------------------+------------------------------------------+------+
|0 |Hi I heard about Spark |[hi, i, heard, about, spark] |5 |
|1 |I wish Java could use case classes |[i, wish, java, could, use, case, classes]|7 |
|2 |Logistic,regression,models,are,neat|[logistic, regression, models, are, neat] |5 |
Am I p MÖGLICHE um so etwas wie dies zu erreichen: [Id von ‚test‘, Id von ‚regexTokenized‘]
2, 0
2, 1
1, 1
0, 1
Aus Liste von ‚Test‘ kann ich IDs grap von ‚regexTokenized‘, wo Token versehen ‚Worte‘ abgebildet werden können zwischen beiden Datensätzen? Oder vielleicht eine andere Lösung sollte genommen werden?
Im Voraus vielen Dank in jede Hilfe :)