hadoop—是否可以从csv列的特定子集创建配置单元表?

vawmfj5a  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(249)

我有大约400个csv文件。我想在这些csv文件上创建一个配置单元表,但只包含列的某个子集(见下文)。我知道我可以创建一个包含所有元素的表,然后使用select语句只获取我想要的元素并创建第二个hive表,但我想知道是否有一种方法可以避免这样做。
以下是我的专栏:

columns = ['time', 'Var2', 'Var3', 'Var4', 'Var5', 'Var6', 'Var7', 'I0', 'I1',
       'I2', 'V0', 'V1', 'V2', 'fpa', 'fpb', 'fpc', 'fpg', 'filename',
       'record_time_stamp', 'fault', 'unix_time', 'Var2_real', 'Var2_imag',
       'Var3_real', 'Var3_imag', 'Var4_real', 'Var4_imag', 'Var5_real',
       'Var5_imag', 'Var6_real', 'Var6_imag', 'Var7_real', 'Var7_imag',
       'I0_real', 'I0_imag', 'I1_real', 'I1_imag', 'I2_real', 'I2_imag',
       'V0_real', 'V0_imag', 'V1_real', 'V1_imag', 'V2_real', 'V2_imag']

我不想把这些放在Hive桌上:

['Var2', 'Var3', 'Var4', 'Var5', 'Var6', 'Var7', 'I0', 'I1','I2', 'V0', 'V1', 'V2']

我知道我可以只更改csv中的数据或使用2个hive表,但我不想更改我的数据(因为另一个团队将使用这些列进行工作),也不想为了保持整洁而创建另一个表。这可能吗?

y4ekin9u

y4ekin9u1#

如果您可以使用spark,我建议您从csv文件中读取数据,创建所需列的数据模型,然后在应用程序接收的rdd上强制执行该模型以创建Dataframe。然后使用.saveastable()保存Dataframe,您应该可以在配置单元数据库中看到这一点。
在这种程度上操纵数据是spark的任务,而不是hive的任务。

相关问题