【问题标题】:Unable to copy local Python file to HIVE using terminal无法使用终端将本地 Python 文件复制到 HIVE
【发布时间】:2018-09-09 04:20:52
【问题描述】:

我正在尝试将 Python 文件(用于 UDF)从本地下载文件夹上传到 HIVE,但没有成功。我使用了命令:

scp -P 2222 ~/Downloads/geohash-udf.py root@localhost:/root/;

但是,我收到以下错误消息:

我还尝试通过运行以下命令直接从本地目录添加文件:

hive> add file /Users/Shaolun/Downloads/geohash-udf.py;

但是我收到了这个错误:

Query returned non-zero code: 1, cause: /Users/Shaolun/Downloads/geohash-udf.py does not exist.

我也曾尝试先将文件放入 HDFS,然后使用以下命令从 HDFS 获取文件:

hive> add file hdfs:///user/root/geohash-udf.py;

该命令按预期工作。但我不希望这样,因为我希望 HIVE 从本地 Windows 机器而不是 HDFS 获取 Python 文件。

我的 Python 文件的确切本地路径是“C:/Users/Shaolun/Downloads/geohash-udf.py”,我的操作系统是 Windows 10。我对为什么无法上传 Python 文件感到困惑进入蜂巢。任何帮助/建议将不胜感激!

【问题讨论】:

    标签: python hive hdfs user-defined-functions


    【解决方案1】:

    scp 是 unix 命令,而不是 hive 命令。

    请从您的 unix 终端 运行相同的命令,它将起作用。

    对于第二个问题,您无法从 hive 终端访问 windows 文件,您只能访问 hdfs 中的文件。

    您可以从您的 unix 主机运行以下命令。

     hdfs dfs -put <filename> <hdfs_path> 
    

    【讨论】:

    • 谢谢你,@Gaurang。我对 Unix 有点陌生。你能告诉我在哪里可以找到我的 Windows 中的 Unix 终端吗?
    • 你的windows机器上安装hortoronworks沙箱或cloudera了吗?
    • 我有 Hortonworks 沙盒。它位于 Oracle VM Virtualbox 中(不确定是否重要)。
    • 默认端口是 22,所以即使你不指定它,它也可以工作。 scp ~/Downloads/geohash-udf.py root@localhost:/root/'
    • @Stanleyrr no such file or directory 表示 ~/Downloads/geohash-udf.py 不存在。
    猜你喜欢
    • 2012-10-28
    • 2023-03-25
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多