#pyspark
Вопрос:
Я попытался с помощью файла данных csv закодировать различные языки для обработки нулевых значений и заполнить его средним значением.
Пожалуйста, найдите точки здесь:
- В csv-файле всего три столбца, но количество строк равно 250000
- Только целевой столбец содержит нулевые данные
- Я попытался с помощью функции вменения pyspark заполнить нулевые данные своим средним значением и выполнить его, но обнаружена проблема в том, что для нескольких строк данные разделяются на следующие ячейки одной и той же строки, поэтому не удается выполнить задачу
Проблемы
- Я не могу закодировать все языки из файла набора данных csv
- Данные столбца «вопрос» разделились на части и заполнили следующие ячейки той же строки, и это произошло только для нескольких строк
Мне нужна помощь:
- Не следует разделять данные и следует обрабатывать все языки, кодируя их
- Следует заполнить пустые данные средним или медианой целевого столбца, поскольку только целевой столбец содержит пустые данные
Я был бы признателен, если бы кто-нибудь помог мне решить эту проблему, пожалуйста
Мой код
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[1]")
.appName("CSV_NULL")
.getOrCreate()
df1_encoded = spark.read.options(header="True",
inferSchema="True")
.option("encoding", "utf-16")
.csv("csv23numNull.csv")
df1_encoded.printSchema()
df1_encoded.show()
======== imputing
from pyspark.ml.feature import Imputer
from pyspark.ml.feature import StringIndexer, VectorIndexer,
OneHotEncoder,
VectorAssembler
df1_impute = Imputer(inputCols = ['target'],
outputCols = ["{}_imputed".format(z) for z in
['target']]).setStrategy("mean")
df2 = df1_impute.fit(df1_encoded).transform(df1_encoded)
# export into new csv file
df2.coalesce(1).write.option("header","true")
.option("sep",",")
.mode("default")
.csv("csv23EncodedStr2intandMean")
link attached for csv file
https://drive.google.com/file/d/1gBst292_H88HTt7CRovIpM1PIpnl6E7m/view?usp=sharing
Это мой результат
df2.printSchema()
root
|-- 煩搬煵敳瑩潮ⱴ慲来�: string (nullable = true)
df2.show()
------------------------------------
| 煩搬煵敳瑩潮ⱴ慲来�|
------------------------------------
| 〰〰㈱㘵㌶㑤戹㈳挷收ⱈ潷楤⁑略扥...|
| 〰〰㌲㤳㤰ㄷㄲづ㙥㐴Ⱒ䑯⁹潵慶攠...|
| 〰〰㐱㉣愶攴㘲㡣攲捦ⱗ桹潥猠癥汯...|
| 〰〰㐲扦㠵慡㐹㡣搷㡥ⱈ潷楤⁏瑴漠...|
| 〰〰㐵㕤晡㍥〱敡攳慦ⱃ慮⁉潮癥牴...|
| 〰〰㑦㥡㐶㉡㌵㝣㌳扥Ⱒ䥳⁇慺愠獬潷...|
| 〰〰㔰㔹愰㙥攱㥥ㄱ慤Ⱒ坨礠摯敳⁑畯...|
| 〰〰㔵㥦㠷㔸㌲㜴㕥㉥ⱉ猠楴牡穹...|
| 〰〰㕢搳㐲㙢㉤っ㠳〵Ⱒ䥳⁴桥牥畣...|
| 〰〰㙥㘹㈸挵摦㘰敡换Ⱒ䥳琠橵獴...|
|〰〰㜵昶㝤搵㤵挳摥戵ⱗ桡琠捡渠祯甠...|
| 〰〰㜶昳戴㈷㜶挶㤲摥ⱈ潷⁷敲攠瑨攠...|
| 〰〰㠹㜹㉢㍦挸〲㘷㐱Ⱒ坨慴猠瑨攠...|
| 〰〰㤲愹ぢ捦扦攸捤㠸ⱃ慮⁷攠畳攠潵...|
| 〰〰㤵㘸づ㐱愹愶昶攳Ⱒ䤠慭″〬楶...|
| 〰〰愸㤹㐲攳ㄴ㍥㌳㍡ⱗ桡琠摯⁹潵...|
| 〰〰戸攱㈷㥥慡ち㜰㘲ⱈ潷楦晩捵汴...|
|〰〰扣て㘲㔰て㔵㤵㥦ⱈ慶攠祯甠汩捫...|
|〰〰捥㙣㌱昱㑤㍥〹散ⱄ漠祯甠瑨楮欠...|
| 〰〰搳㈹㌳㈸㐵戸愷晡ⱈ潷慮礠扡牯...|
------------------------------------
only showing top 20 rows