我正在尝试使用RJDBC软件包将R连接到Hive集群。
我写的代码是:
Error in path.expand(unlist(strsplit(classPath, .Platform$path.sep))) :
invalid 'path' argument
我添加了" C:/ hive-jdbc"也是我的系统路径变量。
但是我收到以下错误:
{{1}}
有人可以帮我这个吗?
答案 0 :(得分:0)
在
classPath = list.files("C:/hive-jdbc/hive-jdbc-0.10.0.jar",
pattern="jar$",full.names=T)
您使用list.files
。 list.files
的第一个参数应该是文件夹,您似乎已经为它提供了一个jar 文件。系统上list.files
功能的只是的输出是多少?它可能是character(0)
。这搞砸了classPath
。修复了 - 并且不清楚您希望classPath
参数的值在此处。如果您希望它是文件夹中的所有.jar
个文件,那么
list.files("C:/wherever/", pattern="\.jar$", full.names=TRUE)
应该这样做。如果它只是一个jar文件,只需将其放入:
classPath="C:/hive-jdbc/hive-blahlah-999.jar"
在通话中。即,保持简单!
答案 1 :(得分:0)
回答Prateek - “未找到类”,因为它不在jar文件中:你的类路径中需要更多的jar文件。对我来说这是:
int n;
int lastDigit;
do
{
cout << "Enter a positive integer: ";
cin >> n;
}while ( n <= 1 || n == '0');
cout << endl;
// If even digit - tri
do
{
lastDigit = n%10;
if (lastDigit / 2 ==0)
{
for (int i = 1; i <= lastDigit; ++i)
for (int tri = 1; tri <= i; ++tri)
cout << "\t" << tri;
cout << endl;
}
// if odd digit - rect
else if (lastDigit / 2 != 0)
{
for (int i = 1; i <= lastDigit; i++)
{
for (int rect = 1; rect <= i; rect++)
cout << "\t" << rect;
cout << endl;
}
n = n/10;
}
cout << endl;
}while (lastDigit != 0);
n = n/10;
cout << endl;
return 0;
(其中一些文件引用是真实文件的符号链接 - 获取真实文件!)我还写了一篇关于让这个工作起作用的基本文章:https://pygot.wordpress.com/2016/10/13/connecting-r-studio-to-hadoop-via-hive/