Hi Dong,
If you still want to insert through hbase, you can use the below snippets
for encoding values as per phoenix. ---> import
org.apache.phoenix.schema.types.*;
public static byte[] encodeDecimal(String value)
{
BigDecimal bigDecValue = new BigDecimal(value);
byte[] pDecimalByteArray =
PDecimal.INSTANCE.toBytes(bigDecValue);
return pDecimalByteArray;
}
public static byte[] encodeDate(java.util.Date utilDate)
{
java.sql.Date sqlDate = new Date(utilDate.getTime());
byte[] pDateByteArray = PDate.INSTANCE.toBytes(sqlDate);
return pDateByteArray;
}
public static byte[] encodeTimestamp(String utilTS)
{
java.sql.Timestamp sqlDate = Timestamp.valueOf(utilTS);
byte[] pTSByteArray = PTimestamp.INSTANCE.toBytes(sqlDate);
return pTSByteArray;
}
public static byte[] encodeLong(String value)
{
byte[] pLongByteArray = PLong.INSTANCE.toBytes(value);
return pLongByteArray;
}
public static byte[] encodeChar(String value)
{
byte[] pCharByteArray = PChar.INSTANCE.toBytes(value);
return pCharByteArray;
}
public static byte[] encodeVarchar(String value)
{
byte[] pVarcharByteArray = PVarchar.INSTANCE.toBytes(value);
return pVarcharByteArray;
}
public static byte[] encodeShort(String value)
{
Short shortValue = Short.parseShort(value);
byte[] pShortByteArray = PSmallint.INSTANCE.toBytes(shortValue);
return pShortByteArray;
}
public static byte[] encodeInteger(String value)
{
int intValue = Integer.parseInt(value);
byte[] pIntByteArray = PInteger.INSTANCE.toBytes(intValue);
return pIntByteArray;
}
--
View this message in context:
http://apache-phoenix-user-list.1124778.n5.nabble.com/ERROR-201-22000-illegal-data-error-expected-length-at-least-4-but-had-tp2170p2202.html
Sent from the Apache Phoenix User List mailing list archive at Nabble.com.