namespace —— 生成的java文件的包 type —— record name —— 生成类的名字 fields —— 字段名和类型 4、生成AvPAO.java类 使用指令java -jar avro-tools-1.8.2.jar compile schema AvPAO.avsc java即可在当前目录生成java文件夹 Ps:使用eclipse一直没生成成功,手动生成了AvPAO.java类然后拷贝到avro.avro包下 5、avro文件反序列化,代码如下:
package avro.avro;
import java.io.File;
import java.io.IOException;
import org.apache.avro.file.DataFileReader;
import org.apache.avro.file.DataFileWriter;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.avro.specific.SpecificDatumWriter;
import org.junit.Test;
public class TestAvPAO {
@Test
public void testCreateUserClass() throws IOException {
// Deserialize Users from disk
DatumReader userDatumReader = new SpecificDatumReader(AvPAO.class);
DataFileReader dataFileReader = new DataFileReader(new File("C:/Users/duyi/Desktop/avro91474834.avro"), userDatumReader);
AvPAO av = null;
while (dataFileReader.hasNext()) {
// Reuse user object by passing it to next(). This saves us from
// allocating and garbage collecting many objects for files with
// many items.
av = dataFileReader.next(av);
System.out.println(av);
}
}
}
运行结果如下: 6、avro文件序列化,代码如下:
package avro.avro;
import java.io.File;
import java.io.IOException;
import org.apache.avro.file.DataFileReader;
import org.apache.avro.file.DataFileWriter;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DatumWriter;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.avro.specific.SpecificDatumWriter;
import org.junit.Test;
public class TestAvPAO {
@Test
public void testCreateUserClass() throws IOException {
AvPAO pao = new AvPAO();
pao.setDateTime("324234");
pao.setFlag(1);
pao.setOrg("23423");
pao.setResponse("234324");
pao.setRowkey("23423");
pao.setTvl("234234");
// Serialize user1, user2 and user3 to disk
DatumWriter userDatumWriter = new SpecificDatumWriter(AvPAO.class);
DataFileWriter dataFileWriter = new DataFileWriter(userDatumWriter);
dataFileWriter.create(pao.getSchema(), new File("AvPAO.avro"));
dataFileWriter.append(pao);
dataFileWriter.close();
// Deserialize Users from disk
DatumReader userDatumReader = new SpecificDatumReader(AvPAO.class);
DataFileReader dataFileReader = new DataFileReader(new File("AvPAO.avro"), userDatumReader);
AvPAO user = null;
while (dataFileReader.hasNext()) {
// Reuse user object by passing it to next(). This saves us from
// allocating and garbage collecting many objects for files with
// many items.
user = dataFileReader.next(user);
System.out.println(user);
}
}
}
快速高效用:SET SQL_SAFE_UPDATES = 0;下面的就不要看了!
今日用MySQL Workbench进行数据库的管理更新时,执行一个更新的语句碰到以下错误提示:
Error Code: 1175
You are using safe update mode and you tried to update a table without a WHERE that
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:You may assume that nums1 has enough space (size that is