Как обработать столбец таблицы или файла csv, который содержит символ newLine, и манипулировать в pyspark dataFrame, имеющем файловую систему hdfs - PullRequest
0 голосов
/ 09 июля 2019

Как обрабатывать столбец любого файла таблицы / csv, который содержит символ новой строки в pyspark df в файловой системе hdfs.

На самом деле мне нужно выполнить манипуляции с данными столбца, где есть символ новой строки, которого невозможно достичь с помощью нижеуказанного шага.

Вызовы с вызовом - это кортеж данных, с символом новой строки char создает новую запись и не может ее проанализировать и манипулировать этим в df

>>> df=spark.read.csv("hdfs://cluster-04d4-m/user/veerayyakumar_g/Cleansdata_Input_Test.csv", header = True, inferSchema = True).show()
+--------------------+----------+--------------------+---------------+-------------+---------+
|                item|item_group|     item_group_desc|item_group_qlty|product_group|   run_dt|
+--------------------+----------+--------------------+---------------+-------------+---------+
|            I1229422|        G1|"<?xml version=""...|           null|         null|     null|
|      <Instructions>|      null|                null|           null|         null|     null|
|    <Instruction ...|      null|                null|           null|         null|     null|
|        Instructi...|      null|                null|           null|         null|     null|
|     </Instructions>|      null|                null|           null|         null|     null|
| ,,P130872,4/22/2019|      null|                null|           null|         null|     null|

>>> df=spark.read.csv("hdfs://cluster-04d4-m/user/veerayyakumar_g/Cleansdata_Input_Test.csv", header = True, inferSchema = True).show()

tried manipluate using lambda function but it's not working 

>>> newdf["item_group_desc"]=df["item_group_desc"].apply(lambda x: x.replace("\n",""))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object has no attribute '__getitem__'


Tried with column funtion still not able to achive that my scenario where i wanted to bring the tuple data in single line in the column "item_group_desc"
>>> newdf=df["item_group_desc"].withColumn('item_group_desc',regexp_replace('item_group_desc','[\\n]',''))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object has no attribute '__getitem__'

Нужен столбец item_group_desc данных в одну строку после удаления в нем символа newLine в pyspark из hdfs файловой системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...