как убрать пробел в заголовке столбца в pyspark и как конвертировать строковую дату в формат даты и времени - PullRequest
0 голосов
/ 25 октября 2019

-Я новичок в pyspark, я пытаюсь удалить пробелы, я не собираюсь удалять его после того, как попытался преобразовать тип строки даты в формат DateTime, который я не конвертировал. Пожалуйста, помогите мне, как это сделать.

Я попробовал это:

emp=spark.read.csv("Downloads/dataset2/employees.csv",header=True)
dd=list(map(lambda x: x.replace(" ",""),emp.columns))
df=emp.toDF(*dd)


  +----------+---------+-----------+--------------------+---------------+--------------------+--------------------+--------------------+---------+-------+-----------+--------+----------------+----------+--------------------+--------------------+----------+--------------------+
|EmployeeID| LastName|  FirstName|               Title|TitleOfCourtesy|           BirthDate|            HireDate|             Address|     City| Region| PostalCode| Country|       HomePhone| Extension|               Photo|               Notes| ReportsTo|           PhotoPath|
+----------+---------+-----------+--------------------+---------------+--------------------+--------------------+--------------------+---------+-------+-----------+--------+----------------+----------+--------------------+--------------------+----------+--------------------+
|         1|'Davolio'|    'Nancy'|'Sales Representa...|          'Ms.'|'1948-12-08 00:00...|'1992-05-01 00:00...|'507 - 20th Ave. ...|'Seattle'|   'WA'|    '98122'|   'USA'|'(206) 555-9857'|    '5467'|'0x151C2F00020000...|'Education includ...|         2|'http://accweb/em...|
|         2| 'Fuller'|   'Andrew'|'Vice President S...|          'Dr.'|'1952-02-19 00:00...|'1992-08-14 00:00...|'908 W. Capital Way'| 'Tacoma'|   'WA'|    '98401'|   'USA'|'(206) 555-9482'|    '3457'|'0x151C2F00020000...|'Andrew received ...|      NULL|'http://accweb/em...|
+----------+---------+-----------+--------------------+---------------+--------------------+--------------------+--------------------+---------+-------+-----------+--------+----------------+----------+--------------------+--------------------+----------+--------------------+

После этого попробовал это, но показывая ошибку:

import pyspark
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
from pyspark.sql.types import *

emp.select("BirthDate").show()
Py4JJavaError: An error occurred while calling o197.select.
: org.apache.spark.sql.AnalysisException: cannot resolve '`BirthDate`' given input columns: [ PhotoPath, EmployeeID,  Photo,  City,  HomePhone,  ReportsTo,  PostalCode,  Title,  Address, Notes,  LastName,   FirstName,  HireDate,  Region,  Extension,  Country,  BirthDate, TitleOfCourtesy];;

после этого я попробовал это:

df=emp.withColumn('BirthDate', from_unixtime(unix_timestamp('BirthDate','yyyy-mm-dd')))

, но отображаются нулевые значения:

df.select("BirthDate").show(4)
+---------+
|BirthDate|
+---------+
|     null|
|     null|
|     null|
|     null|
|     null|
|     null|
|     null|
|     null|
|     null|
+---------+

1 Ответ

0 голосов
/ 25 октября 2019

Попробуйте это

for each in df.columns:
   df = df.withColumnRenamed(each , each.strip())

Дата и время вперед:

df=emp.withColumn('BirthDate', from_unixtime(unix_timestamp('BirthDate','yyyy-mm-dd')))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...