我想从这找个工作,不知道可不可以?

一名山东大学的本科生分享了自己在Java领域的学习经历与实习感悟,包括自学过程中的挑战及成长,参与项目的经验等。
各位javaEye论坛的XDJMGGJJ们:
你们好,
我现在在一个公司实习,过年的时候就结束了,本来我父母不想让我搞这一行,可是我还是挺喜欢这一行的,他们说要是我能找个比较合适的工作还是同意我做这一行的,不知道我能不能在咱们这里论坛找个属于自己喜欢的工作
言归正传,
我是山东大学的本科生。大学期间刚开始接触的就是java,到现在也是3年多了,从刚开始的HelloWorld也写不出来到现在基本上可以适应项目开发,我走过了很多很多,看过的书也是很多很多,现在虽然在外面实习看书的时间少了,但是我还是坚持每天晚上的一两个小时的看书时间的
我不是一个聪明的人,但是我肯定是一个踏踏实实的人。我的理解能力不是很强,但是我会用我的努力去弥补。在各种情况下,我都是一个不大喜欢表现自己的人
我喜欢写程序,有时候心血来潮就会写程序到半夜。我的自学能力还是可以的,在学校的时候,学习jsp和struts1.2,但是大二刚开始没人教,自己学习也很慢,自己是啃了3本书以后才逐渐对jsp了解了一下
当时硬着头皮看完那三本有关jsp的书以后,后来真的是脑子里突然灵光一现:jsp原来是这样用,那时才突然对jsp有点豁然开朗的境界,学习struts1.2和hibernate的时候也是这样的,我都是靠自己自学慢慢掌握了解的
自己在学校的时候是一个有关公益活动的协会的负责人,自己平时都把时间放在那上面了,虽然很累,但是感觉自己能够做一些有益于社会的事情还是很开心的,毕竟作为一个大学生就已经从社会获得了足够多的关心,就应该去履行自己回报社会,关注社会的责任
我的学习成绩也还是可以的,三年时间,拿过一次二等奖学金,两次三等奖学金。大学时间我也很腼腆,也没有真正找老师做过什么大项目,但是自己写的代码行确不会比那些做项目的同学少,和同学参加过一次齐鲁软件设计大赛,获得二等奖。
在学校期间的一个工程实训,我和我同学一起做人力资源项目组里面做东西,我是我们组的技术主管(汗颜,其实我会的也不多),我们用的是struts1.2,我们组成员都是没有接触过struts1.2的。在我们小组的努力下,他们在最后结束项目的时候都懂得了不少有关
struts1.2的东西。最后我们组获得了人力资源小组的第一名。后来7月到现在,我一直在一家公司实习,使用的也是java方面的知识。我知道实习时间还是很短的,但是我确实是真真正正学到了好多好多的东西
我用的是Struts2.0+hibernate+spring+AJax的架构,在实习过程中,我开始逐渐对SSH的一些东西开始熟悉,可能和各位相比可能学的比较肤浅,可是对我来说就如走到大千世界的井底之蛙,让我知道了原来有这么多的东西需要我学习。
真的是让我在这里学到了比我在学校三年自学时间学到的东西还多,逐渐的我就喜欢上了编程,喜欢开始逛论坛看别人的帖子,我发觉从中确实是可以长见识。
在公司的压力中,真的是好多以前不懂的东西在这种压力中使得自己不得不去学习去运用。这促使我不断进步,来公司的时候公司并没有给培训,但是经过到现在的学习,一般任务我都是没有问题的
希望大家看到以后有机会的能够给我一个展示我自己的机会。如果没有的话能够和大家交流交朋友也未尝不是一件好事,哈哈
我的MSN:dandansdu@hotmail.com。
谢谢大家。
你问得非常关键: > ❓“我没有 `flink-json-*.jar`,可不可以写 `FORMAT ('format' = 'json')`?” --- ### ✅ 直接回答: **可以。** 即使你写 `FORMAT` 语句,Flink **仍然需要知道如何把数据序列化成 Elasticsearch 能理解的格式(即 JSON)**。 而 JSON 序列化的逻辑就封装在 `flink-json-*.jar` 中。 --- ### 🔍 详细解释:为什么能省略? #### 1. Flink 的 Connector 是“格式无关”的 Elasticsearch Connector 只负责发送 HTTP 请求,但它知道你的数据长什么样。 它依赖一个 **Format(格式器)** 来完成以下工作: | 功能 | 说明 | |------|------| | ✅ 序列化 | 把 Flink 的 `Row` 数据转成 JSON 字符串 | | ✅ 处理 null | 空值是否跳过或保留为 `null` | | ✅ 类型映射 | 比如 `BIGINT` → JSON number, `STRING` → JSON string | 👉 这些功能都由 `JsonFormatFactory` 提供,它就在 `flink-json-*.jar` 里。 --- #### 2. 如果没有这个 JAR 包,会发生什么? 即使你写了: ```sql FORMAT ('format' = 'json') ``` 但 **classpath 中没有 `flink-json-*.jar`**,启动时会报错: ```text org.apache.flink.table.api.ValidationException: Could not find any factory for identifier 'json' that implements 'org.apache.flink.table.factories.SerializationFormatFactory' ``` 意思是:“你说要用 json 格式,但我到对应的插件。” --- #### 3. 那能能绕过 Format? ❌ 行。Elasticsearch Connector **必须配合一种 Serialization Format 使用**,目前只支持: - `'format' = 'json'` - (高级用法)自定义 `RowData` 到 `_source` 的 Mapping 没有格式,就没有输出。 --- ### ✅ 解决方案:你必须做这两件事 | 步骤 | 操作 | |------|------| | 1️⃣ 获取 JAR 包 | 下载对应版本的 `flink-json-<version>.jar` | | 2️⃣ 放入 lib 目录 | 将其放入 Flink 安装目录下的 `lib/` 文件夹 | | 3️⃣ 写上 FORMAT | 在 DDL 中显式声明 `FORMAT ('format' = 'json')` | --- ### 📦 如何下载 flink-json-*.jar? 以 Flink 1.17 为例: 🔗 下载地址: https://repo.maven.apache.org/maven2/org/apache/flink/flink-json/1.17.2/ 文件名: ``` flink-json-1.17.2.jar ``` ✅ 放到 `$FLINK_HOME/lib/` 后重启 SQL Client 即可识别。 --- ### ✅ 替代思路(推荐,仅用于测试) 如果你真的引入额外 JAR(比如嵌入式环境),唯一替代方式是: #### 使用 `RAW` 格式 + 预先构造好 JSON 字符串字段 ```sql CREATE TABLE es_users ( json_data STRING, PRIMARY KEY (json_data) NOT ENFORCED ) WITH ( 'connector' = 'elasticsearch-7', 'hosts' = 'http://localhost:9200', 'index' = 'users_index', 'document-type' = '_doc', 'format' = 'raw' -- 原样输出字符串字段作为 _source ); ``` 然后插入前手动拼 JSON: ```sql INSERT INTO es_users SELECT CAST( MAP_OBJECT_CONSTRUCTOR( 'id', id, 'name', name, 'email', email, 'city', city ) AS STRING ) AS json_data FROM mysql_users; ``` ⚠️ 缺点: - 手动处理 JSON 转义、null、类型错误风险高 - 通用,难以维护 - `MAP_OBJECT_CONSTRUCTOR` 并非所有版本支持 👉 所以 **强烈建议使用标准方式:引入 `flink-json-*.jar` + `FORMAT ('format' = 'json')`** --- ### ✅ 总结 | 问题 | 回答 | |------|------| | 没有 `flink-json-*.jar` 能能运行? | ❌ 行 | | 可不可以写 `FORMAT ('format' = 'json')`? | ❌ 行,必须写 | | 是否可以换其他方式输出? | ⚠️ 可以用 `raw` + 手动 JSON 字符串,但复杂且易错 | | 推荐做法是什么? | ✅ 引入 `flink-json-*.jar`,并正确配置 `FORMAT` | ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值