繁体   English   中英

WEKA:java.lang.IllegalArgumentException:未知数据类型:int4

[英]WEKA: java.lang.IllegalArgumentException: Unknown data type: int4

我正在尝试将postgresql数据库与Eclipse WEKA连接。

当我运行main时,出现此exception

Exception in thread "main" java.lang.IllegalArgumentException: Unknown data type: int4. Add entry in weka/experiment/DatabaseUtils.props.
If the type contains blanks, either escape them with a backslash or use underscores instead of blanks.
  • 我下载了WEKA 3-6-14
  • 我解压缩了weka.jar
  • 我在文件weka / experiment / DatabaseUtils.props.postgresql中更改了jdbc url和jdbc驱动程序的行
  • 我添加了我在数据库中使用的数据类型
  • 我将DatabaseUtils.props.postgresql文件重命名为DatabaseUtils.props

这是我的DatabaseUtils.props.postgresql文件的一部分:

# Database settings for PostgreSQL 7.4
#
# General information on database access can be found here:
# http://weka.wikispaces.com/Databases
#
# url:     http://www.postgresql.org/
# jdbc:    http://jdbc.postgresql.org/
# author:  Fracpete (fracpete at waikato dot ac dot nz)
# version: $Revision: 11887 $

# JDBC driver (comma-separated list)
jdbcDriver=org.postgresql.Driver

# database URL
jdbcURL=jdbc:postgresql://localhost:5432/datamining

# specific data types
string, getString() = 0;    --> nominal
boolean, getBoolean() = 1;  --> nominal
double, getDouble() = 2;    --> numeric
# byte, getByte() = 3;        --> numeric
# short, getByte()= 4;        --> numeric
int, getInteger() = 5;      --> numeric
# long, getLong() = 6;        --> numeric
# float, getFloat() = 7;      --> numeric
# date, getDate() = 8;        --> date
# text, getString() = 9;      --> string
# time, getTime() = 10;       --> date
# timestamp, getTime() = 11;  --> date

# PostgreSQL data types to Java classes information can be found at:
# http://www.postgresql.org/message-id/AANLkTinsk4rwT7v-751bwQkgTN1rkA=8uE-jk69nape-@mail.gmail.com
text=0
boolean=1
double=2
int4=5

这是我主要方法中的代码:

InstanceQuery query = new InstanceQuery();
    query.setUsername("username");
    query.setPassword("password");
    query.setQuery("SELECT * FROM database ORDER BY \"id\"");
    Instances data = query.retrieveInstances();

有人可以告诉我为什么我仍然收到例外吗?

尝试将getter添加到DatabaseUtils.props.postgresql int4

我将DatabaseUtils.props代码更改为:

# Database settings for PostgreSQL 7.4
#
# General information on database access can be found here:
# http://weka.wikispaces.com/Databases
#
# url:     http://www.postgresql.org/
# jdbc:    http://jdbc.postgresql.org/
# author:  Fracpete (fracpete at waikato dot ac dot nz)
# version: $Revision: 11885 $

# JDBC driver (comma-separated list)
jdbcDriver=org.postgresql.Driver

# database URL
jdbcURL=jdbc:postgresql://localhost:5432/datamining

# specific data types
# string, getString() = 0;    --> nominal
# boolean, getBoolean() = 1;  --> nominal
# double, getDouble() = 2;    --> numeric
# byte, getByte() = 3;        --> numeric
# short, getByte()= 4;        --> numeric
# int, getInteger() = 5;      --> numeric
# long, getLong() = 6;        --> numeric
# float, getFloat() = 7;      --> numeric
# date, getDate() = 8;        --> date
# text, getString() = 9;      --> string
# time, getTime() = 10;       --> date
# timestamp, getTime() = 11;  --> date

# PostgreSQL data types to Java classes information can be found at:
# http://www.postgresql.org/message-id/AANLkTinsk4rwT7v-751bwQkgTN1rkA=8uE-jk69nape-@mail.gmail.com
varchar=0
text=0
float4=7
float8=2
int4=5
oid=5
timestamp=8
date=8
bool=1
int2=5
int8=2
numeric=2
bpchar=9

现在正在工作。 您还应该检查Eclipse的Java版本是否与driver.jar之一相同。 否则,您将得到以下异常:

java.lang.NoClassDefFoundError: java/time/temporal/TemporalField

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM