小明:最近我们在做大数据中台的项目,有一个需求是让用户能够从系统中下载数据。你有什么建议吗?
小李:我们可以使用Hadoop或者Spark来处理数据,然后提供一个REST API供用户下载。
小明:那具体的代码怎么写呢?能给我看看吗?

小李:当然可以。比如用Python Flask做一个简单的下载接口,读取HDFS上的文件,然后返回给用户。
小明:那代码怎么写呢?
小李:我给你写一个例子:
    from flask import Flask, send_file
    import hdfs
    app = Flask(__name__)
    client = hdfs.InsecureClient('http://localhost:50070')
    @app.route('/download/')
    def download(filename):
        client.download(filename, 'local_file')
        return send_file('local_file', as_attachment=True)
    if __name__ == '__main__':
        app.run(debug=True)
     
小明:这样就可以从HDFS下载文件了?
小李:没错。不过要注意权限问题和文件路径的问题。另外,如果数据量很大,可能需要分页或者压缩传输。
小明:明白了,谢谢你的帮助!
小李:不客气,有问题随时问我。
