Я работаю над алгоритмом нечеткого сопоставления, как показано ниже:
from pyspark.ml import Pipeline
from pyspark.ml.feature import RegexTokenizer, NGram, HashingTF, MinHashLSH
master = spark.sql("""
Select
496 as ID
,'DR VALERY KUZNETSOV CARDIOLOGIST PC' as Name
""")
sample = spark.sql("""
Select
496 as ID
,'DR VALERY KUZNETSOV CARDIOLOGIST PC' as Name
union all
select
496 as ID
,'VALERY KUZNETSOV' as Name
""")
model1 = Pipeline(stages=[
RegexTokenizer(
pattern="", inputCol="Name", outputCol="tokens", minTokenLength=1
),
NGram(n=1, inputCol="tokens", outputCol="ngrams"),
HashingTF(inputCol="ngrams", outputCol="vectors"),
MinHashLSH(inputCol="vectors", outputCol="lsh")
]).fit(master)
master_hashed = model1.transform(master)
sample_hashed = model1.transform(sample)
modelOutput1=model1.stages[-1].approxSimilarityJoin(master_hashed, sample_hashed, 1.0)
modelOutput1.show()
, когда я запускаю указанное выше в Jupyter Notebook, я получаю результат ниже:
+--------------------+--------------------+-------------------+
| datasetA| datasetB| distCol|
+--------------------+--------------------+-------------------+
|[496, DR VALERY K...|[496, VALERY KUZN...|0.26315789473684215|
|[496, DR VALERY K...|[496, DR VALERY K...| 0.0|
+--------------------+--------------------+-------------------+
но когда Я запускаю приведенный выше код в интерактивном режиме PySpark в кластере, он показывает мне только 1 строку в выводе, как показано ниже:
+--------------------+--------------------+-------+
| datasetA| datasetB|distCol|
+--------------------+--------------------+-------+
|[496, DR VALERY K...|[496, DR VALERY K...| 0.0|
+--------------------+--------------------+-------+
Встречал ли кто-нибудь что-нибудь подобное / что было бы лучшим способом остановить этого не произошло?