You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@beam.apache.org by Kayal P <ka...@gmail.com> on 2022/02/28 00:58:55 UTC

[Question] Writing Pcollection data to GCS file path

Hi Team,

I have a few GBs of Data derived in a Pcollection as a result of dataflow
transforms. My objective is to write the data from this Pcollection to a
file in GCS using Java SDK. Could you suggest me efficient way of doing
this, along with sample code?

Thanks in advance

Regards,
Kayal

Re: [Code Question] Pcollection to List using Java sdk

Posted by Brian Hulette <bh...@google.com>.
An alternative, if you're open to using the Python SDK, would be to use
interactive Beam. With it you can call ib.collect() to materialize a
PCollection in local memory. It also has a %%beam_sql magic to provide
support for SqlTransform. I understand that may not be a feasible change,
but we can provide pointers if you're open to it.

Brian

On Thu, Apr 21, 2022 at 8:06 AM Reuven Lax <re...@google.com> wrote:

> There is a Concatenate combiner in Java, but I think it's a bit overkill
> here.
>
> To elucidate what Alexey said -
>
> PCollection<Iterable<String>> strings = pc.apply(WithKey.of((Void) null)
>     .apply(GroupByKey.create())
>     .apply(Values.create());
>
> This will give you back a single-element PCollection containing an
> Iterable. If you really need it to be a List, you can add the following:
>
>     strings.apply(MapElements
>           .into(TypeDescriptors.lists(TypeDescriptors.strings())
>           .via(iterable - > ImmutableList.copyOf(iterable)));
>
> On Thu, Apr 21, 2022 at 7:47 AM Alexey Romanenko <ar...@gmail.com>
> wrote:
>
>> In this case, if you already know that the size of your result is quite
>> small and fits into memory than you need to have to materialise your
>> results on one worker in the same JVM. You can do that with assigning the
>> same key for all result elements and then apply GroupByKey transform over
>> this PCollection<KV<K,String>>. Alternatively, you can use GroupIntoBatches
>> (see example in Javadoc [1]) transform for better control on this.
>>
>> [1]
>> https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupIntoBatches.java
>>
>> —
>> Alexey
>>
>> On 21 Apr 2022, at 14:31, Kayal P <ka...@gmail.com> wrote:
>>
>> Hi Alexey,
>>
>> I have a small result of Pcollection<String> from SQLTransform. I have to
>> pass this result to a mailing class that sends mail, with body as values
>> from Pcollection<String>, In a tabular format. The number of elements in
>> Pcollection<String> will be less than 10 always.
>>
>> Regards,
>> Kayal
>>
>>
>> On Apr 21, 2022, at 5:13 AM, Alexey Romanenko <ar...@gmail.com>
>> wrote:
>>
>> Hi Kayal,
>>
>> In general, PCollection is infinite collection of elements. So, there is
>> no only one simple way to do what you are asking and the solution will
>> depend on a case where it’s needed.
>>
>> Could you give an example why and where in your pipeline you do need
>> this?
>>
>> —
>> Alexey
>>
>> On 21 Apr 2022, at 06:28, Kayal P <ka...@gmail.com> wrote:
>>
>> Hi All,
>>
>> I am trying to convert Pcollection<String> to List<String> using Java
>> sdk. Seems there is combiners.ToList transform available in python sdk. Is
>> there any similar option available in Java sdk? If not can someone guide me
>> with right way of doing this? The Pcollection<String> is very small
>> collection less than 10 items. Thanks in advance.
>>
>>
>> Regards,
>> Kayal
>>
>>
>>
>>

Re: [Code Question] Pcollection to List using Java sdk

Posted by Reuven Lax <re...@google.com>.
There is a Concatenate combiner in Java, but I think it's a bit overkill
here.

To elucidate what Alexey said -

PCollection<Iterable<String>> strings = pc.apply(WithKey.of((Void) null)
    .apply(GroupByKey.create())
    .apply(Values.create());

This will give you back a single-element PCollection containing an
Iterable. If you really need it to be a List, you can add the following:

    strings.apply(MapElements
          .into(TypeDescriptors.lists(TypeDescriptors.strings())
          .via(iterable - > ImmutableList.copyOf(iterable)));

On Thu, Apr 21, 2022 at 7:47 AM Alexey Romanenko <ar...@gmail.com>
wrote:

> In this case, if you already know that the size of your result is quite
> small and fits into memory than you need to have to materialise your
> results on one worker in the same JVM. You can do that with assigning the
> same key for all result elements and then apply GroupByKey transform over
> this PCollection<KV<K,String>>. Alternatively, you can use GroupIntoBatches
> (see example in Javadoc [1]) transform for better control on this.
>
> [1]
> https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupIntoBatches.java
>
> —
> Alexey
>
> On 21 Apr 2022, at 14:31, Kayal P <ka...@gmail.com> wrote:
>
> Hi Alexey,
>
> I have a small result of Pcollection<String> from SQLTransform. I have to
> pass this result to a mailing class that sends mail, with body as values
> from Pcollection<String>, In a tabular format. The number of elements in
> Pcollection<String> will be less than 10 always.
>
> Regards,
> Kayal
>
>
> On Apr 21, 2022, at 5:13 AM, Alexey Romanenko <ar...@gmail.com>
> wrote:
>
> Hi Kayal,
>
> In general, PCollection is infinite collection of elements. So, there is
> no only one simple way to do what you are asking and the solution will
> depend on a case where it’s needed.
>
> Could you give an example why and where in your pipeline you do need this?
>
> —
> Alexey
>
> On 21 Apr 2022, at 06:28, Kayal P <ka...@gmail.com> wrote:
>
> Hi All,
>
> I am trying to convert Pcollection<String> to List<String> using Java sdk.
> Seems there is combiners.ToList transform available in python sdk. Is there
> any similar option available in Java sdk? If not can someone guide me with
> right way of doing this? The Pcollection<String> is very small collection
> less than 10 items. Thanks in advance.
>
>
> Regards,
> Kayal
>
>
>
>

Re: [Code Question] Pcollection to List using Java sdk

Posted by Alexey Romanenko <ar...@gmail.com>.
In this case, if you already know that the size of your result is quite small and fits into memory than you need to have to materialise your results on one worker in the same JVM. You can do that with assigning the same key for all result elements and then apply GroupByKey transform over this PCollection<KV<K,String>>. Alternatively, you can use GroupIntoBatches (see example in Javadoc [1]) transform for better control on this.

[1] https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupIntoBatches.java <https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/GroupIntoBatches.java>

—
Alexey

> On 21 Apr 2022, at 14:31, Kayal P <ka...@gmail.com> wrote:
> 
> Hi Alexey,
> 
> I have a small result of Pcollection<String> from SQLTransform. I have to pass this result to a mailing class that sends mail, with body as values from Pcollection<String>, In a tabular format. The number of elements in Pcollection<String> will be less than 10 always.
> 
> Regards,
> Kayal
> 
>> 
>> On Apr 21, 2022, at 5:13 AM, Alexey Romanenko <ar...@gmail.com> wrote:
>> 
>> Hi Kayal,
>> 
>> In general, PCollection is infinite collection of elements. So, there is no only one simple way to do what you are asking and the solution will depend on a case where it’s needed.
>> 
>> Could you give an example why and where in your pipeline you do need this? 
>> 
>> —
>> Alexey
>> 
>>> On 21 Apr 2022, at 06:28, Kayal P <kayalpaarthipan@gmail.com <ma...@gmail.com>> wrote:
>>> 
>>> Hi All,
>>> 
>>> I am trying to convert Pcollection<String> to List<String> using Java sdk. Seems there is combiners.ToList transform available in python sdk. Is there any similar option available in Java sdk? If not can someone guide me with right way of doing this? The Pcollection<String> is very small collection less than 10 items. Thanks in advance.
>>> 
>>> Regards,
>>> Kayal 
>> 


Re: [Code Question] Pcollection to List using Java sdk

Posted by Kayal P <ka...@gmail.com>.
Hi Alexey,

I have a small result of Pcollection<String> from SQLTransform. I have to pass this result to a mailing class that sends mail, with body as values from Pcollection<String>, In a tabular format. The number of elements in Pcollection<String> will be less than 10 always.

Regards,
Kayal

> 
> On Apr 21, 2022, at 5:13 AM, Alexey Romanenko <ar...@gmail.com> wrote:
> 
> Hi Kayal,
> 
> In general, PCollection is infinite collection of elements. So, there is no only one simple way to do what you are asking and the solution will depend on a case where it’s needed.
> 
> Could you give an example why and where in your pipeline you do need this? 
> 
> —
> Alexey
> 
>> On 21 Apr 2022, at 06:28, Kayal P <ka...@gmail.com> wrote:
>> 
>> Hi All,
>> 
>> I am trying to convert Pcollection<String> to List<String> using Java sdk. Seems there is combiners.ToList transform available in python sdk. Is there any similar option available in Java sdk? If not can someone guide me with right way of doing this? The Pcollection<String> is very small collection less than 10 items. Thanks in advance.
>> 
>> Regards,
>> Kayal 
> 

Re: [Code Question] Pcollection to List using Java sdk

Posted by Alexey Romanenko <ar...@gmail.com>.
Hi Kayal,

In general, PCollection is infinite collection of elements. So, there is no only one simple way to do what you are asking and the solution will depend on a case where it’s needed.

Could you give an example why and where in your pipeline you do need this? 

—
Alexey

> On 21 Apr 2022, at 06:28, Kayal P <ka...@gmail.com> wrote:
> 
> Hi All,
> 
> I am trying to convert Pcollection<String> to List<String> using Java sdk. Seems there is combiners.ToList transform available in python sdk. Is there any similar option available in Java sdk? If not can someone guide me with right way of doing this? The Pcollection<String> is very small collection less than 10 items. Thanks in advance.
> 
> Regards,
> Kayal 


[Code Question] Pcollection to List using Java sdk

Posted by Kayal P <ka...@gmail.com>.
Hi All,

I am trying to convert Pcollection<String> to List<String> using Java sdk. Seems there is combiners.ToList transform available in python sdk. Is there any similar option available in Java sdk? If not can someone guide me with right way of doing this? The Pcollection<String> is very small collection less than 10 items. Thanks in advance.


Regards,
Kayal 

Re: [Question] Writing Pcollection data to GCS file path

Posted by Kayal P <ka...@gmail.com>.
Sure. Thank you for the assistance.

> 
> On 28-Feb-2022, at 12:16 AM, Reuven Lax <re...@google.com> wrote:
> 
> 
> Yes - writing to multiple files is the only way to achieve parallelism, as multiple workers cannot safely append to the same file. If you need data written to only one file, then it will process no faster than that single worker can handle.
> 
>> On Sun, Feb 27, 2022 at 8:39 PM Kayal P <ka...@gmail.com> wrote:
>> Thank you. But if I am not using withousharding, I am getting the results written to various number of files based on the number of workers. Objective is to create one file per run. 
>> 
>> Regards,
>> Kayal
>> 
>>> 
>>>> On 27-Feb-2022, at 11:09 PM, Reuven Lax <re...@google.com> wrote:
>>>> 
>>> 
>>> This works, however withoutSharding forces the entire write to be done by a single worker. If your data grows large, you may find that this starts performing poorly.
>>> 
>>>> On Sun, Feb 27, 2022 at 7:41 PM Kayal P <ka...@gmail.com> wrote:
>>>> Hi Reuven,
>>>> 
>>>> Final Pcollection<Row> is derived from values in one of the tables as shown below. Then I am converting it to Pcollection<String> and writing to gcs using TextIO. No encoding is required. I just have to write the Pcollection<String> to the gcs file with extension ".json". I am able to perform the functionality using the below code. Is this the efficient way of performing write to gcs. Please let me know if there are any better ways of performing this.
>>>> 
>>>> String JSON_SQL_QUERY=  "SELECT\n" +
>>>>         "  CONCAT( '{\"source\" : {\"name\": \"bulkUpload\", \"payloadType\" : {\"version\" : \"1.0\", \"type\" : \"testtype\"}, \"ids\" : {\"testid1\" : \"', id, '\"}}' ) \n"+
>>>>         " FROM \n" +
>>>>         "     tempTable\n";;
>>>> PCollection<Row> rowOutput = tempTuple.apply(SqlTransform.query(JSON_SQL_QUERY));
>>>> PCollection<String> finalJsonString = rowOutput
>>>>         .apply(
>>>>                 "create string from row",
>>>>                 MapElements.via(
>>>>                         new SimpleFunction<Row, String>() {
>>>>                             @Override
>>>>                             public String apply(Row input) {
>>>>                                 return input.getValue(0);
>>>>                             }
>>>>                         }));
>>>> 
>>>> finalJsonString.apply("Write results", TextIO.write()
>>>>         .to("gs://bucket/folder/result")
>>>>         .withoutSharding()
>>>>         .withSuffix(".json"));
>>>> 
>>>> Regards,
>>>> Kayal
>>>> 
>>>>> On Sun, Feb 27, 2022 at 10:16 PM Reuven Lax <re...@google.com> wrote:
>>>>> How is your data encoded? What do you want the files in GCS to look like?
>>>>> 
>>>>> Reuven
>>>>> 
>>>>>> On Sun, Feb 27, 2022 at 4:59 PM Kayal P <ka...@gmail.com> wrote:
>>>>>> Hi Team,
>>>>>> 
>>>>>> I have a few GBs of Data derived in a Pcollection as a result of dataflow transforms. My objective is to write the data from this Pcollection to a file in GCS using Java SDK. Could you suggest me efficient way of doing this, along with sample code?
>>>>>> 
>>>>>> Thanks in advance
>>>>>> 
>>>>>> Regards,
>>>>>> Kayal

Re: [Question] Writing Pcollection data to GCS file path

Posted by Reuven Lax <re...@google.com>.
Yes - writing to multiple files is the only way to achieve parallelism, as
multiple workers cannot safely append to the same file. If you need data
written to only one file, then it will process no faster than that single
worker can handle.

On Sun, Feb 27, 2022 at 8:39 PM Kayal P <ka...@gmail.com> wrote:

> Thank you. But if I am not using withousharding, I am getting the results
> written to various number of files based on the number of workers.
> Objective is to create one file per run.
>
> Regards,
> Kayal
>
>
> On 27-Feb-2022, at 11:09 PM, Reuven Lax <re...@google.com> wrote:
>
> 
> This works, however withoutSharding forces the entire write to be done by
> a single worker. If your data grows large, you may find that this starts
> performing poorly.
>
> On Sun, Feb 27, 2022 at 7:41 PM Kayal P <ka...@gmail.com> wrote:
>
>> Hi Reuven,
>>
>> Final Pcollection<Row> is derived from values in one of the tables as
>> shown below. Then I am converting it to Pcollection<String> and writing to
>> gcs using TextIO. No encoding is required. I just have to write the
>> Pcollection<String> to the gcs file with extension ".json". I am able to
>> perform the functionality using the below code. Is this the efficient way
>> of performing write to gcs. Please let me know if there are any better ways
>> of performing this.
>>
>> String JSON_SQL_QUERY=  "SELECT\n" +
>>         "  CONCAT( '{\"source\" : {\"name\": \"bulkUpload\", \"payloadType\" : {\"version\" : \"1.0\", \"type\" : \"testtype\"}, \"ids\" : {\"testid1\" : \"', id, '\"}}' ) \n"+
>>         " FROM \n" +
>>         "     tempTable\n";;
>> PCollection<Row> rowOutput = tempTuple.apply(SqlTransform.query(JSON_SQL_QUERY));
>> PCollection<String> finalJsonString = rowOutput
>>         .apply(
>>                 "create string from row",
>>                 MapElements.via(
>>                         new SimpleFunction<Row, String>() {
>>                             @Override
>>                             public String apply(Row input) {
>>                                 return input.getValue(0);
>>                             }
>>                         }));
>>
>> finalJsonString.apply("Write results", TextIO.write()
>>         .to("gs://bucket/folder/result")
>>         .withoutSharding()
>>         .withSuffix(".json"));
>>
>>
>> Regards,
>> Kayal
>>
>> On Sun, Feb 27, 2022 at 10:16 PM Reuven Lax <re...@google.com> wrote:
>>
>>> How is your data encoded? What do you want the files in GCS to look like?
>>>
>>> Reuven
>>>
>>> On Sun, Feb 27, 2022 at 4:59 PM Kayal P <ka...@gmail.com>
>>> wrote:
>>>
>>>> Hi Team,
>>>>
>>>> I have a few GBs of Data derived in a Pcollection as a result of
>>>> dataflow transforms. My objective is to write the data from this
>>>> Pcollection to a file in GCS using Java SDK. Could you suggest me
>>>> efficient way of doing this, along with sample code?
>>>>
>>>> Thanks in advance
>>>>
>>>> Regards,
>>>> Kayal
>>>>
>>>

Re: [Question] Writing Pcollection data to GCS file path

Posted by Kayal P <ka...@gmail.com>.
Thank you. But if I am not using withousharding, I am getting the results written to various number of files based on the number of workers. Objective is to create one file per run. 

Regards,
Kayal

> 
> On 27-Feb-2022, at 11:09 PM, Reuven Lax <re...@google.com> wrote:
> 
> 
> This works, however withoutSharding forces the entire write to be done by a single worker. If your data grows large, you may find that this starts performing poorly.
> 
>> On Sun, Feb 27, 2022 at 7:41 PM Kayal P <ka...@gmail.com> wrote:
>> Hi Reuven,
>> 
>> Final Pcollection<Row> is derived from values in one of the tables as shown below. Then I am converting it to Pcollection<String> and writing to gcs using TextIO. No encoding is required. I just have to write the Pcollection<String> to the gcs file with extension ".json". I am able to perform the functionality using the below code. Is this the efficient way of performing write to gcs. Please let me know if there are any better ways of performing this.
>> 
>> String JSON_SQL_QUERY=  "SELECT\n" +
>>         "  CONCAT( '{\"source\" : {\"name\": \"bulkUpload\", \"payloadType\" : {\"version\" : \"1.0\", \"type\" : \"testtype\"}, \"ids\" : {\"testid1\" : \"', id, '\"}}' ) \n"+
>>         " FROM \n" +
>>         "     tempTable\n";;
>> PCollection<Row> rowOutput = tempTuple.apply(SqlTransform.query(JSON_SQL_QUERY));
>> PCollection<String> finalJsonString = rowOutput
>>         .apply(
>>                 "create string from row",
>>                 MapElements.via(
>>                         new SimpleFunction<Row, String>() {
>>                             @Override
>>                             public String apply(Row input) {
>>                                 return input.getValue(0);
>>                             }
>>                         }));
>> 
>> finalJsonString.apply("Write results", TextIO.write()
>>         .to("gs://bucket/folder/result")
>>         .withoutSharding()
>>         .withSuffix(".json"));
>> 
>> Regards,
>> Kayal
>> 
>>> On Sun, Feb 27, 2022 at 10:16 PM Reuven Lax <re...@google.com> wrote:
>>> How is your data encoded? What do you want the files in GCS to look like?
>>> 
>>> Reuven
>>> 
>>>> On Sun, Feb 27, 2022 at 4:59 PM Kayal P <ka...@gmail.com> wrote:
>>>> Hi Team,
>>>> 
>>>> I have a few GBs of Data derived in a Pcollection as a result of dataflow transforms. My objective is to write the data from this Pcollection to a file in GCS using Java SDK. Could you suggest me efficient way of doing this, along with sample code?
>>>> 
>>>> Thanks in advance
>>>> 
>>>> Regards,
>>>> Kayal

Re: [Question] Writing Pcollection data to GCS file path

Posted by Reuven Lax <re...@google.com>.
This works, however withoutSharding forces the entire write to be done by a
single worker. If your data grows large, you may find that this starts
performing poorly.

On Sun, Feb 27, 2022 at 7:41 PM Kayal P <ka...@gmail.com> wrote:

> Hi Reuven,
>
> Final Pcollection<Row> is derived from values in one of the tables as
> shown below. Then I am converting it to Pcollection<String> and writing to
> gcs using TextIO. No encoding is required. I just have to write the
> Pcollection<String> to the gcs file with extension ".json". I am able to
> perform the functionality using the below code. Is this the efficient way
> of performing write to gcs. Please let me know if there are any better ways
> of performing this.
>
> String JSON_SQL_QUERY=  "SELECT\n" +
>         "  CONCAT( '{\"source\" : {\"name\": \"bulkUpload\", \"payloadType\" : {\"version\" : \"1.0\", \"type\" : \"testtype\"}, \"ids\" : {\"testid1\" : \"', id, '\"}}' ) \n"+
>         " FROM \n" +
>         "     tempTable\n";;
> PCollection<Row> rowOutput = tempTuple.apply(SqlTransform.query(JSON_SQL_QUERY));
> PCollection<String> finalJsonString = rowOutput
>         .apply(
>                 "create string from row",
>                 MapElements.via(
>                         new SimpleFunction<Row, String>() {
>                             @Override
>                             public String apply(Row input) {
>                                 return input.getValue(0);
>                             }
>                         }));
>
> finalJsonString.apply("Write results", TextIO.write()
>         .to("gs://bucket/folder/result")
>         .withoutSharding()
>         .withSuffix(".json"));
>
>
> Regards,
> Kayal
>
> On Sun, Feb 27, 2022 at 10:16 PM Reuven Lax <re...@google.com> wrote:
>
>> How is your data encoded? What do you want the files in GCS to look like?
>>
>> Reuven
>>
>> On Sun, Feb 27, 2022 at 4:59 PM Kayal P <ka...@gmail.com>
>> wrote:
>>
>>> Hi Team,
>>>
>>> I have a few GBs of Data derived in a Pcollection as a result of
>>> dataflow transforms. My objective is to write the data from this
>>> Pcollection to a file in GCS using Java SDK. Could you suggest me
>>> efficient way of doing this, along with sample code?
>>>
>>> Thanks in advance
>>>
>>> Regards,
>>> Kayal
>>>
>>

Re: [Question] Writing Pcollection data to GCS file path

Posted by Kayal P <ka...@gmail.com>.
Hi Reuven,

Final Pcollection<Row> is derived from values in one of the tables as shown
below. Then I am converting it to Pcollection<String> and writing to gcs
using TextIO. No encoding is required. I just have to write the
Pcollection<String> to the gcs file with extension ".json". I am able to
perform the functionality using the below code. Is this the efficient way
of performing write to gcs. Please let me know if there are any better ways
of performing this.

String JSON_SQL_QUERY=  "SELECT\n" +
        "  CONCAT( '{\"source\" : {\"name\": \"bulkUpload\",
\"payloadType\" : {\"version\" : \"1.0\", \"type\" : \"testtype\"},
\"ids\" : {\"testid1\" : \"', id, '\"}}' ) \n"+
        " FROM \n" +
        "     tempTable\n";;
PCollection<Row> rowOutput =
tempTuple.apply(SqlTransform.query(JSON_SQL_QUERY));
PCollection<String> finalJsonString = rowOutput
        .apply(
                "create string from row",
                MapElements.via(
                        new SimpleFunction<Row, String>() {
                            @Override
                            public String apply(Row input) {
                                return input.getValue(0);
                            }
                        }));

finalJsonString.apply("Write results", TextIO.write()
        .to("gs://bucket/folder/result")
        .withoutSharding()
        .withSuffix(".json"));


Regards,
Kayal

On Sun, Feb 27, 2022 at 10:16 PM Reuven Lax <re...@google.com> wrote:

> How is your data encoded? What do you want the files in GCS to look like?
>
> Reuven
>
> On Sun, Feb 27, 2022 at 4:59 PM Kayal P <ka...@gmail.com> wrote:
>
>> Hi Team,
>>
>> I have a few GBs of Data derived in a Pcollection as a result of dataflow
>> transforms. My objective is to write the data from this Pcollection to a
>> file in GCS using Java SDK. Could you suggest me efficient way of doing
>> this, along with sample code?
>>
>> Thanks in advance
>>
>> Regards,
>> Kayal
>>
>

Re: [Question] Writing Pcollection data to GCS file path

Posted by Reuven Lax <re...@google.com>.
How is your data encoded? What do you want the files in GCS to look like?

Reuven

On Sun, Feb 27, 2022 at 4:59 PM Kayal P <ka...@gmail.com> wrote:

> Hi Team,
>
> I have a few GBs of Data derived in a Pcollection as a result of dataflow
> transforms. My objective is to write the data from this Pcollection to a
> file in GCS using Java SDK. Could you suggest me efficient way of doing
> this, along with sample code?
>
> Thanks in advance
>
> Regards,
> Kayal
>