public async Task <TablePartitionsList> ListTablePartitions(string database, string tableName) { if (string.IsNullOrEmpty(database) || string.IsNullOrEmpty(tableName)) { throw new Exception("database and table are required."); } TablePartitionsList tablePartitionsList = await Get <TablePartitionsList>(_webHcatBaseUrl, _webHCatVersion, _webHCatUserName, requestURL.ListTablePartitions(database, tableName)); return(tablePartitionsList); }
public async void ListTablePartitionsTest() { TablePartitionsList tablePartitionsList = await hManager.ListTablePartitions("testing", "table1"); if (string.IsNullOrEmpty(tablePartitionsList.error)) { Console.WriteLine(string.Format("table {0}.{1} partitions:", tablePartitionsList.database, tablePartitionsList.table)); tablePartitionsList.partitions.ForEach(p => { Console.WriteLine(string.Format("Partition {0}:", p.name)); p.values.ForEach(v => Console.WriteLine(string.Format("Column: {0}, Value: {1}", v.columnName, v.columnValue))); Task <PartitionDescribe> describeTablePartitionTask = hManager.DescribeTablePartition(tablePartitionsList.database, tablePartitionsList.table, p.name); Task.WaitAll(describeTablePartitionTask); var describePartition = describeTablePartitionTask.GetAwaiter().GetResult(); if (string.IsNullOrEmpty(describePartition.error)) { Console.WriteLine(string.Format("Partition {0} Describe:", describePartition.partition)); Console.WriteLine(string.Format("Partitioned: {0}", describePartition.partitioned)); Console.WriteLine(string.Format("Output Format: {0}", describePartition.outputFormat)); Console.WriteLine(string.Format("Input Format: {0}", describePartition.inputFormat)); foreach (var column in describePartition.columns) { Console.WriteLine(string.Format("Column Name: {0}, Column Type: {1}", column.name, column.type)); } } else { Console.WriteLine(((Error)describePartition).ToString()); } }); } else { Console.WriteLine(((Error)tablePartitionsList).ToString()); } }