我正在尝试使用没有标题的数据集,并且字段分隔符有::
:
! wget --quiet http://files.grouplens.org/datasets/movielens/ml-1m.zip
! unzip ml-1m.zip
! mv ml-1m/ratings.dat .
! head ratings.dat
输出:
1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
我已将文件加载到我的dsx管道中,但我不清楚如何使用::
分隔符让dsx拆分此文件。 Q1)我该怎么做?
Q2)如果无法使用dsx ml管道功能让dsx重新整形此文件,那么dsx在输入文件格式方面是否有任何预先要求?
更新
我正在尝试使用的ml管道功能可以从下面的屏幕截图中看到:
我添加了一个数据集,但无法弄清楚如何让dsx识别字段分隔符:
答案 0 :(得分:2)
截至2017年2月......
当您创建新管道并选择数据集时,我相信DSX会使用Spark DataFrameReader加载您选择的文件。 DataFrameReader默认使用单个,
作为分隔符。 DSX没有提供更改UI中默认分隔符的方法。
我认为预处理数据是您的最佳选择。你可以在笔记本上做到这一点。请注意,Spark DataFrameReader仅支持单个字符分隔符,因此您不能将其与此特定数据集一起使用。但是,您可以使用pandas。
import pandas as pd
pdf = pd.read_csv('ml-1m/ratings.dat', sep='::',
header=None,
names=['UserID','MovieID','Rating','Timestamp'],
engine='python')
pdf.to_csv('ratings.csv', index=False)
!head ratings.csv
UserID,MovieID,Rating,Timestamp
1,1193,5,978300760
1,661,3,978302109
1,914,3,978301968
1,3408,4,978300275
1,2355,5,978824291
1,1197,3,978302268
1,1287,5,978302039
1,2804,5,978300719
1,594,4,978302268
现在,数据将采用DSX能够正确解析的格式。