导出数据处理建议

数据格式

导出数据皆为csv格式:

  • 分隔符: ,

  • 包围符:"

  • 转义符:\

处理建议

建议下载数据后,将下载的压缩文件放于hdfs的以日期建立目录结构,同一小时或者同一天的数据放在同一目录下,然后通过spark streaming的fileStream接口监控根目录,读取变动的文件内容。

streamingContext.fileStream[KeyClass, ValueClass, InputFormatClass](dataDirectory)

在依赖中添加:

groupId: com.databricksartifactId: spark-csv_2.10version: 1.4.0

具体数据操作参考spark-csv(https://github.com/databricks/spark-csv)

导入到数据仓库示例

  1. 使用Hive新建外部表,如下图所示。

  2. 使用hadoop fs -put /xx.csv /tmp/test_export/ 将csv放到外部表目录下。

CREATE EXTERNAL TABLE TEST_EXPORT
(
sessionId STRING,
time BIGINT,
sendTime BIGINT,
pageTime BIGINT,
domain STRING,
page STRING,
queryParameters STRING,
eventName STRING,
eventNumber DOUBLE,
eventVariable map<string, string>,
loginUserId STRING
)
ROW FORMAT SERDE EATE EXTE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
STORED AS TEXTFILE
location '/tmp/test_export'
tblproperties ("skip.header.line.count"="1", "quote.delim"="\"", "escape.delim"="\\")

md5进行文件完整性校验

用户如果对文件完整性有担心,可以对原始数据导出 API第三步下载时response的headers中x-amz-meta-md5-hash的value值(文件的md5)进行校验。若校验未通过,可重启第三步,轮询获取。

eg: Headers信息如下

md5校验结果

Last updated