Не удается отобразить файл CSV в pyspark (ValueError: Некоторые типы не могут быть определены по первым 100 строкам, пожалуйста, попробуйте еще раз с выборкой) - PullRequest
0 голосов
/ 21 февраля 2019

Я получаю сообщение об ошибке при отображении файла CSV через Pyspark.Я приложил код PySpark и файл CSV, который я использовал.

from pyspark.sql import *
spark.conf.set("fs.azure.account.key.xxocxxxxxxx","xxxxx")

time_on_site_tablepath= "wasbs://dwpocblob@dwadfpoc.blob.core.windows.net/time_on_site.csv"
time_on_site = spark.read.format("csv").options(header='true', inferSchema='true').load(time_on_site_tablepath)

display(time_on_site.head(50))

Ошибка показана ниже

ValueError: Some of types cannot be determined by the first 100 rows, please try again with sampling

Формат файла CSV прикреплен ниже

time_on_site:pyspark.sql.dataframe.DataFrame

next_eventdate:timestamp
barcode:integer
eventdate:timestamp
sno:integer
eventaction:string
next_action:string
next_deviceid:integer
next_device:string
type_flag:string
site:string
location:string
flag_perimeter:integer
deviceid:integer
device:string
tran_text:string
flag:integer
timespent_sec:integer
gg:integer

Данные файла CSV прикреплены ниже

next_eventdate,barcode,eventdate,sno,eventaction,next_action,next_deviceid,next_device,type_flag,site,location,flag_perimeter,deviceid,device,tran_text,flag,timespent_sec,gg
2018-03-16 05:23:34.000,1998296,2018-03-14 18:50:29.000,1,IN,OUT,2,AGATE-R02-AP-Vehicle_Exit,,NULL,NULL,1,1,AGATE-R01-AP-Vehicle_Entry,Access Granted,0,124385,0
2018-03-17 07:22:16.000,1998296,2018-03-16 18:41:09.000,3,IN,OUT,2,AGATE-R02-AP-Vehicle_Exit,,NULL,NULL,1,1,AGATE-R01-AP-Vehicle_Entry,Access Granted,0,45667,0
2018-03-19 07:23:55.000,1998296,2018-03-17 18:36:17.000,6,IN,OUT,2,AGATE-R02-AP-Vehicle_Exit,,NULL,NULL,1,1,AGATE-R01-AP-Vehicle_Entry,Access Granted,1,132458,1
2018-03-21 07:25:04.000,1998296,2018-03-19 18:23:26.000,8,IN,OUT,2,AGATE-R02-AP-Vehicle_Exit,,NULL,NULL,1,1,AGATE-R01-AP-Vehicle_Entry,Access Granted,0,133298,0
2018-03-24 07:33:38.000,1998296,2018-03-23 18:39:04.000,10,IN,OUT,2,AGATE-R02-AP-Vehicle_Exit,,NULL,NULL,1,1,AGATE-R01-AP-Vehicle_Entry,Access Granted,0,46474,0

Что можно сделать для успешной загрузки файла CSV?

1 Ответ

0 голосов
/ 22 февраля 2019

В вашем синтаксисе нет проблем, он работает нормально.Проблема заключается в ваших данных файла CSV, где столбец с именем type_flag имеет только None (нулевые) значения, поэтому он не определяет его тип данных.

Итак, здесь есть два варианта.

  1. Вы можете отобразить данные, не используя head ().Например, display(time_on_site)

  2. Если вы хотите использовать head(), вам нужно заменить нулевое значение, здесь я заменил его пустой строкой ('').

    time_on_site = time_on_site.fillna('') display(time_on_site.head(50))

...