导出数据处理建议

数据格式

导出数据皆为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 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
STORED AS TEXTFILE
location '/tmp/test_export'
tblproperties ("skip.header.line.count"="1", "quote.delim"="\"", "escape.delim"="\\")

使用Content-Length进行文件完整性校验

生效日期 : 2020/10/29 21:00:00 开始

用户如果对文件完整性有担心,可以对原始数据导出 API第三步下载时response的headers中的value值Content-Length和下载文件的大小进行校验。若校验未通过,可重启第三步,轮询获取,若校验通过,可以解压缩,如果解压出现异常,可重启第三步,轮询获取。

最后更新于