读取ArrayType值(phoneNumbers)时出错,没有ArrayType值,我可以读取其余值。
{
"firstName": "Rack",
"lastName": "Jackon",
"gender": "man",
"age": 24,
"address": {
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
},
"phoneNumbers": [
{ "type": "home", "number": 7383627627}
]
}
My schema ->
val schema=StructType(List(
StructField("firstName",StringType),
StructField("lastName",StringType),
StructField("gender",StringType),
StructField("age",IntegerType),
StructField("address",StructType(List(
StructField("streetAddress",StringType),
StructField("city",StringType),
StructField("state",StringType),
StructField("postalCode",IntegerType)))),
StructField("phoneNumbers",ArrayType(StructType(List(
StructField("type",StringType),
StructField("number",IntegerType))))),
))
json_df.selectExpr("firstName","lastName",
"gender","age","address.streetAddress","address.city",
"address.state","address.postalCode",
"explode(phoneNumbers) as phone","phone.type","phone.number").drop("phone").show()
当我这样做时。show,它只显示列名,没有值,但当我不使用“phoneNumbers”数组时,它可以正常工作。
IntegerType表示4字节有符号整数,最大值为2147483647,不能容纳电话号码。电话号码可以使用LongType或StringType。
您的选择
查询没有结果,因为您正在爆炸一个空的电话号码数组,该数组返回0行。该数组为空,因为电话号码无法保存在ENTgerType
列中。
我需要使用Spring batch每两个月处理一次输入文件。文件名带有时间戳,因此每次运行时都会更改。 文件名:NY_Prov_mmddyyyy。csv 我正在使用下面的代码来读取文件,我试图只给出目录名,因为fileName中有一个模式,并且文件名不是固定的。但是,这不起作用。 application.properties: 错误: 原因:java.lang.IllegalStateExcept
问题内容: 我正在尝试解析CSV文件,最好使用weka.core.converters.CSVLoader。但是,我拥有的文件不是有效的UTF-8文件。它主要是一个UTF-8文件,但是某些字段值使用不同的编码,因此没有一种编码方式可以使整个文件有效,但是无论如何我都需要对其进行解析。除了使用像Weka这样的Java库之外,我主要在Scala中工作。我什至无法读取scala.io中的文件。资料来源:
问题内容: 我有以下json文件。我想知道我应该将json文件放在我的项目中的位置以及如何读取和存储它。 问题答案: 将该文件放入资产中 。 对于在Android Studio项目中创建的项目,您需要在主文件夹下创建资产文件夹。 将该文件读取为: 然后您可以简单地通过此函数读取此返回 有关JSON的更多详细信息,请参见 http://www.vogella.com/articles/Android
需要帮助修复此错误。我试图打印出字符串国家名称的数组长度。 我从一个简历文件阅读,我一直得到上面的错误。下面是我的代码: 下面是我的TestCSV类文件: 我的csv文件如下所示:这是一个摘要,因为我不想打印出全部252个国家。基本上,我把252个国家的数据存储在一个字符串数组中,年份存储在一个整数数组中,每个国家的蜂窝数据统计数据存储在一个二维双数组中。我是编程新手,我想知道我的方向是否正确,如
我有一个txt文件,数据如下所示 我在使用这段代码时读到了数据: 由于我的时间列,它不能正常工作,因为是通过逗号分隔的。我该如何解决这一点,如何使它工作,即使在我有多列这样的时间格式的情况下? 我想获得一个如下所示的数据帧: 多谢!