我想在 C# 中使用 Apache 的 PDFBox 库,我检查了 NuGet 但遗憾的是,那里没有 PDFBox 2.0。
我在互联网上搜索了在 .Net 上使用 Java 库的方法,发现一些旧文章(2011-2014)说我应该使用 IKVM,并发现一些较新的文章说 IKVM 不再更新并且它不起作用不再。
有没有什么可行的方法可以使 PDFBox 2.0 库与 C# 一起使用?
如果我的问题听起来很愚蠢,我深表歉意,但 2 小时前我不知道我们可以将 Java 库转换为 .NET,哈哈。
我有这个数据框:
cSchema = StructType([StructField("id1", StringType()), StructField("id2", StringType()), StructField("params", StringType())\
,StructField("Col2", IntegerType())])
test_list = [[1, 2, '{"param1": "val1", "param2": "val2"}', 1], [1, 3, '{"param1": "val4", "param2": "val5"}', 3]]
df = spark.createDataFrame(test_list,schema=cSchema)
+---+---+--------------------+----+
|id1|id2| params|Col2|
+---+---+--------------------+----+
| 1| 2|{"param1": "val1"...| 1|
| 1| 3|{"param1": "val4"...| 3|
+---+---+--------------------+----+
Run Code Online (Sandbox Code Playgroud)
我想将参数分解为列:
+---+---+----+------+------+
|id1|id2|Col2|param1|param2|
+---+---+----+------+------+
| 1| 2| 1| val1| val2|
| 1| 3| 3| val4| val5|
+---+---+----+------+------+
Run Code Online (Sandbox Code Playgroud)
所以我编码如下:
schema2 = StructType([StructField("param1", StringType()), StructField("param2", StringType())])
df.withColumn(
"params", from_json("params", schema2)
).select(
col('id1'), col('id2'),col('Col2'), col('params.*')
).show()
Run Code Online (Sandbox Code Playgroud)
问题是params …