小编Pet*_*ens的帖子

为什么Apache Spark会在嵌套结构中读取不必要的Parquet列?

我的团队正在构建一个ETL过程,使用Spark将原始分隔文本文件加载到基于Parquet的"数据湖"中.Parquet列存储的一个承诺是查询只会读取必要的"列条带".

但是我们看到嵌套模式结构正在读取意外的列.

为了演示,这里有一个使用Scala和Spark 2.0.1 shell的POC:

// Preliminary setup
sc.setLogLevel("INFO")
import org.apache.spark.sql.types._
import org.apache.spark.sql._

// Create a schema with nested complex structures
val schema = StructType(Seq(
    StructField("F1", IntegerType),
    StructField("F2", IntegerType),
    StructField("Orig", StructType(Seq(
        StructField("F1", StringType),
        StructField("F2", StringType))))))

// Create some sample data
val data = spark.createDataFrame(
    sc.parallelize(Seq(
        Row(1, 2, Row("1", "2")),
        Row(3, null, Row("3", "ABC")))),
    schema)

// Save it
data.write.mode(SaveMode.Overwrite).parquet("data.parquet")
Run Code Online (Sandbox Code Playgroud)

然后我们将文件读回DataFrame并投影到列的子集:

// Read it back into another DataFrame
val df = spark.read.parquet("data.parquet")

// Select & show a subset of the columns
df.select($"F1", …
Run Code Online (Sandbox Code Playgroud)

apache-spark parquet spark-dataframe

22
推荐指数
2
解决办法
3055
查看次数

什么是Windows的Cloud-Init等价物?

似乎Windows上的库存引导过程有点缺乏.

Linux有cloud-init,它将安装包,存储文件,并从用户数据运行bash脚本.

Windows具有ec2config,但是当系统处于"就绪"状态时,目前不支持运行cmd或powershell脚本 - 这意味着所有初始重新启动都已完成.

似乎有第三方选择.例如,RightScale具有执行此功能的RightLink代理.

有开源选项吗?有没有计划将此功能添加到Ec2Config?我必须自己建立这个吗?

我错过了什么吗?

windows bootstrapping amazon-ec2 cloud-init

9
推荐指数
1
解决办法
9130
查看次数

s3:GetIpConfiguration IAM 策略操作用于什么?

策略向导和文档中有几个 S3 操作似乎未使用。

具体来说:ListBucketByTags、ListObjects、PutIpConfiguration 和 GetIpConfiguration。

这些操作与哪些 API 调用相关联?它们被弃用了吗?还是没用过?

好奇心想知道!

amazon-s3 amazon-iam

5
推荐指数
1
解决办法
998
查看次数

为什么我的新Windows Installer文件(MSI)不能在旧版本的MSI上正确安装?

症状

我有新创建的安装程序包(MSI),它安装了我的应用程序的新版本.

我有一个新的ProductCode用于我的安装,但我已经使UpgradeCode保持不变.

因此,当我执行新的MSI时,它首先正确卸载旧版本.甚至删除Program Files\MyProduct目录.

但卸载旧版本后,安装程序只会部分安装新版本.如果我修复损坏的新安装(使用添加删除程序 - >修改安装 - >修复),一切都已修复.

如果我首先使用"添加删除程序"卸载旧版本,然后安装新版本,则一切正常.只有当我将新版本安装在旧版本之上时,才会出现此问题.

可能的原因

旧版本中各种dll和exes的版本号都搞砸了.旧的exe版本是4.11.1234.新exe的版本是4.5.1234.根据"文件版本控制规则",新文件不会覆盖旧文件.我之间的问题是,当InstallFiles操作执行时,目标文件不再驻留在磁盘上.

其他信息

我的目标是Windows Installer 3.1.

我的安装执行顺序大致如下:

...
InstallValidate
RemoveExistingProducts
InstallInitialize
...
InstallFiles
...
InstallExecute
InstallFinalize
....
Run Code Online (Sandbox Code Playgroud)

如果这个背景没有明确问题,请告诉我......

谢谢!

windows-installer

3
推荐指数
1
解决办法
4357
查看次数

哪个版本的Microsoft.NET框架可以与Windows Powerhsell一起使用?

我正在为Powershell 1和2开发提供程序和cmdlet.

我应该为扩展程序定位哪个版本的框架?

我假设Microsoft.NET 2可以正常工作.3.0和3.5怎么样?Microsoft.NET 4.0?

.net powershell .net-3.5

3
推荐指数
1
解决办法
99
查看次数